home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / dev / gcc / gcc260_base.lha / gnu / os-include / inline / graphics.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-07-21  |  73.0 KB  |  2,241 lines

  1. #ifndef _INLINE_GRAPHICS_H
  2. #define _INLINE_GRAPHICS_H
  3.  
  4. #include <sys/cdefs.h>
  5. #include <inline/stubs.h>
  6.  
  7. #include <graphics/gels.h>
  8. #include <graphics/scale.h>
  9.  
  10. __BEGIN_DECLS
  11.  
  12. #ifndef BASE_EXT_DECL
  13. #define BASE_EXT_DECL 
  14. #define BASE_EXT_DECL0 extern struct GfxBase*  GfxBase;
  15. #endif
  16. #ifndef BASE_PAR_DECL
  17. #define BASE_PAR_DECL
  18. #define BASE_PAR_DECL0 void
  19. #endif
  20. #ifndef BASE_NAME
  21. #define BASE_NAME GfxBase
  22. #endif
  23.  
  24. BASE_EXT_DECL0
  25.  
  26. static __inline void 
  27. AddAnimOb (BASE_PAR_DECL struct AnimOb *anOb,struct AnimOb **anKey,struct RastPort *rp)
  28. {
  29.   BASE_EXT_DECL
  30.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  31.   register struct AnimOb *a0 __asm("a0") = anOb;
  32.   register struct AnimOb **a1 __asm("a1") = anKey;
  33.   register struct RastPort *a2 __asm("a2") = rp;
  34.   __asm __volatile ("jsr a6@(-0x9c)"
  35.   : /* no output */
  36.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  37.   : "a0","a1","a2","d0","d1", "memory");
  38. }
  39. static __inline void 
  40. AddBob (BASE_PAR_DECL struct Bob *bob,struct RastPort *rp)
  41. {
  42.   BASE_EXT_DECL
  43.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  44.   register struct Bob *a0 __asm("a0") = bob;
  45.   register struct RastPort *a1 __asm("a1") = rp;
  46.   __asm __volatile ("jsr a6@(-0x60)"
  47.   : /* no output */
  48.   : "r" (a6), "r" (a0), "r" (a1)
  49.   : "a0","a1","d0","d1", "memory");
  50. }
  51. static __inline void 
  52. AddFont (BASE_PAR_DECL struct TextFont *textFont)
  53. {
  54.   BASE_EXT_DECL
  55.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  56.   register struct TextFont *a1 __asm("a1") = textFont;
  57.   __asm __volatile ("jsr a6@(-0x1e0)"
  58.   : /* no output */
  59.   : "r" (a6), "r" (a1)
  60.   : "a0","a1","d0","d1", "memory");
  61. }
  62. static __inline void 
  63. AddVSprite (BASE_PAR_DECL struct VSprite *vSprite,struct RastPort *rp)
  64. {
  65.   BASE_EXT_DECL
  66.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  67.   register struct VSprite *a0 __asm("a0") = vSprite;
  68.   register struct RastPort *a1 __asm("a1") = rp;
  69.   __asm __volatile ("jsr a6@(-0x66)"
  70.   : /* no output */
  71.   : "r" (a6), "r" (a0), "r" (a1)
  72.   : "a0","a1","d0","d1", "memory");
  73. }
  74. static __inline struct BitMap *
  75. AllocBitMap (BASE_PAR_DECL unsigned long sizex,unsigned long sizey,unsigned long depth,unsigned long flags,struct BitMap *friend_bitmap)
  76. {
  77.   BASE_EXT_DECL
  78.   register struct BitMap * _res  __asm("d0");
  79.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  80.   register unsigned long d0 __asm("d0") = sizex;
  81.   register unsigned long d1 __asm("d1") = sizey;
  82.   register unsigned long d2 __asm("d2") = depth;
  83.   register unsigned long d3 __asm("d3") = flags;
  84.   register struct BitMap *a0 __asm("a0") = friend_bitmap;
  85.   __asm __volatile ("jsr a6@(-0x396)"
  86.   : "=r" (_res)
  87.   : "r" (a6), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (a0)
  88.   : "a0","a1","d0","d1","d2","d3", "memory");
  89.   return _res;
  90. }
  91. static __inline struct DBufInfo *
  92. AllocDBufInfo (BASE_PAR_DECL struct ViewPort *vp)
  93. {
  94.   BASE_EXT_DECL
  95.   register struct DBufInfo * _res  __asm("d0");
  96.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  97.   register struct ViewPort *a0 __asm("a0") = vp;
  98.   __asm __volatile ("jsr a6@(-0x3c6)"
  99.   : "=r" (_res)
  100.   : "r" (a6), "r" (a0)
  101.   : "a0","a1","d0","d1", "memory");
  102.   return _res;
  103. }
  104. static __inline PLANEPTR 
  105. AllocRaster (BASE_PAR_DECL unsigned long width,unsigned long height)
  106. {
  107.   BASE_EXT_DECL
  108.   register PLANEPTR  _res  __asm("d0");
  109.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  110.   register unsigned long d0 __asm("d0") = width;
  111.   register unsigned long d1 __asm("d1") = height;
  112.   __asm __volatile ("jsr a6@(-0x1ec)"
  113.   : "=r" (_res)
  114.   : "r" (a6), "r" (d0), "r" (d1)
  115.   : "a0","a1","d0","d1", "memory");
  116.   return _res;
  117. }
  118. static __inline struct ExtSprite *
  119. AllocSpriteDataA (BASE_PAR_DECL struct BitMap *bm,struct TagItem *tags)
  120. {
  121.   BASE_EXT_DECL
  122.   register struct ExtSprite * _res  __asm("d0");
  123.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  124.   register struct BitMap *a2 __asm("a2") = bm;
  125.   register struct TagItem *a1 __asm("a1") = tags;
  126.   __asm __volatile ("jsr a6@(-0x3fc)"
  127.   : "=r" (_res)
  128.   : "r" (a6), "r" (a2), "r" (a1)
  129.   : "a0","a1","a2","d0","d1", "memory");
  130.   return _res;
  131. }
  132. static __inline void 
  133. AndRectRegion (BASE_PAR_DECL struct Region *region,struct Rectangle *rectangle)
  134. {
  135.   BASE_EXT_DECL
  136.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  137.   register struct Region *a0 __asm("a0") = region;
  138.   register struct Rectangle *a1 __asm("a1") = rectangle;
  139.   __asm __volatile ("jsr a6@(-0x1f8)"
  140.   : /* no output */
  141.   : "r" (a6), "r" (a0), "r" (a1)
  142.   : "a0","a1","d0","d1", "memory");
  143. }
  144. static __inline BOOL 
  145. AndRegionRegion (BASE_PAR_DECL struct Region *srcRegion,struct Region *destRegion)
  146. {
  147.   BASE_EXT_DECL
  148.   register BOOL  _res  __asm("d0");
  149.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  150.   register struct Region *a0 __asm("a0") = srcRegion;
  151.   register struct Region *a1 __asm("a1") = destRegion;
  152.   __asm __volatile ("jsr a6@(-0x270)"
  153.   : "=r" (_res)
  154.   : "r" (a6), "r" (a0), "r" (a1)
  155.   : "a0","a1","d0","d1", "memory");
  156.   return _res;
  157. }
  158. static __inline void 
  159. Animate (BASE_PAR_DECL struct AnimOb **anKey,struct RastPort *rp)
  160. {
  161.   BASE_EXT_DECL
  162.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  163.   register struct AnimOb **a0 __asm("a0") = anKey;
  164.   register struct RastPort *a1 __asm("a1") = rp;
  165.   __asm __volatile ("jsr a6@(-0xa2)"
  166.   : /* no output */
  167.   : "r" (a6), "r" (a0), "r" (a1)
  168.   : "a0","a1","d0","d1", "memory");
  169. }
  170. static __inline LONG 
  171. AreaDraw (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  172. {
  173.   BASE_EXT_DECL
  174.   register LONG  _res  __asm("d0");
  175.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  176.   register struct RastPort *a1 __asm("a1") = rp;
  177.   register long d0 __asm("d0") = x;
  178.   register long d1 __asm("d1") = y;
  179.   __asm __volatile ("jsr a6@(-0x102)"
  180.   : "=r" (_res)
  181.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  182.   : "a0","a1","d0","d1", "memory");
  183.   return _res;
  184. }
  185. static __inline LONG 
  186. AreaEllipse (BASE_PAR_DECL struct RastPort *rp,long xCenter,long yCenter,long a,long b)
  187. {
  188.   BASE_EXT_DECL
  189.   register LONG  _res  __asm("d0");
  190.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  191.   register struct RastPort *a1 __asm("a1") = rp;
  192.   register long d0 __asm("d0") = xCenter;
  193.   register long d1 __asm("d1") = yCenter;
  194.   register long d2 __asm("d2") = a;
  195.   register long d3 __asm("d3") = b;
  196.   __asm __volatile ("jsr a6@(-0xba)"
  197.   : "=r" (_res)
  198.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  199.   : "a0","a1","d0","d1","d2","d3", "memory");
  200.   return _res;
  201. }
  202. static __inline LONG 
  203. AreaEnd (BASE_PAR_DECL struct RastPort *rp)
  204. {
  205.   BASE_EXT_DECL
  206.   register LONG  _res  __asm("d0");
  207.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  208.   register struct RastPort *a1 __asm("a1") = rp;
  209.   __asm __volatile ("jsr a6@(-0x108)"
  210.   : "=r" (_res)
  211.   : "r" (a6), "r" (a1)
  212.   : "a0","a1","d0","d1", "memory");
  213.   return _res;
  214. }
  215. static __inline LONG 
  216. AreaMove (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  217. {
  218.   BASE_EXT_DECL
  219.   register LONG  _res  __asm("d0");
  220.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  221.   register struct RastPort *a1 __asm("a1") = rp;
  222.   register long d0 __asm("d0") = x;
  223.   register long d1 __asm("d1") = y;
  224.   __asm __volatile ("jsr a6@(-0xfc)"
  225.   : "=r" (_res)
  226.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  227.   : "a0","a1","d0","d1", "memory");
  228.   return _res;
  229. }
  230. static __inline void 
  231. AskFont (BASE_PAR_DECL struct RastPort *rp,struct TextAttr *textAttr)
  232. {
  233.   BASE_EXT_DECL
  234.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  235.   register struct RastPort *a1 __asm("a1") = rp;
  236.   register struct TextAttr *a0 __asm("a0") = textAttr;
  237.   __asm __volatile ("jsr a6@(-0x1da)"
  238.   : /* no output */
  239.   : "r" (a6), "r" (a1), "r" (a0)
  240.   : "a0","a1","d0","d1", "memory");
  241. }
  242. static __inline ULONG 
  243. AskSoftStyle (BASE_PAR_DECL struct RastPort *rp)
  244. {
  245.   BASE_EXT_DECL
  246.   register ULONG  _res  __asm("d0");
  247.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  248.   register struct RastPort *a1 __asm("a1") = rp;
  249.   __asm __volatile ("jsr a6@(-0x54)"
  250.   : "=r" (_res)
  251.   : "r" (a6), "r" (a1)
  252.   : "a0","a1","d0","d1", "memory");
  253.   return _res;
  254. }
  255. static __inline LONG 
  256. AttachPalExtra (BASE_PAR_DECL struct ColorMap *cm,struct ViewPort *vp)
  257. {
  258.   BASE_EXT_DECL
  259.   register LONG  _res  __asm("d0");
  260.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  261.   register struct ColorMap *a0 __asm("a0") = cm;
  262.   register struct ViewPort *a1 __asm("a1") = vp;
  263.   __asm __volatile ("jsr a6@(-0x342)"
  264.   : "=r" (_res)
  265.   : "r" (a6), "r" (a0), "r" (a1)
  266.   : "a0","a1","d0","d1", "memory");
  267.   return _res;
  268. }
  269. static __inline BOOL 
  270. AttemptLockLayerRom (BASE_PAR_DECL struct Layer *layer)
  271. {
  272.   BASE_EXT_DECL
  273.   register BOOL  _res  __asm("d0");
  274.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  275.   register struct Layer *a5 __asm("a5") = layer;
  276.   __asm __volatile ("jsr a6@(-0x28e)"
  277.   : "=r" (_res)
  278.   : "r" (a6), "r" (a5)
  279.   : "a0","a1","a5","d0","d1", "memory");
  280.   return _res;
  281. }
  282. static __inline ULONG 
  283. BestModeIDA (BASE_PAR_DECL struct TagItem *tags)
  284. {
  285.   BASE_EXT_DECL
  286.   register ULONG  _res  __asm("d0");
  287.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  288.   register struct TagItem *a0 __asm("a0") = tags;
  289.   __asm __volatile ("jsr a6@(-0x41a)"
  290.   : "=r" (_res)
  291.   : "r" (a6), "r" (a0)
  292.   : "a0","a1","d0","d1", "memory");
  293.   return _res;
  294. }
  295. static __inline void 
  296. BitMapScale (BASE_PAR_DECL struct BitScaleArgs *bitScaleArgs)
  297. {
  298.   BASE_EXT_DECL
  299.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  300.   register struct BitScaleArgs *a0 __asm("a0") = bitScaleArgs;
  301.   __asm __volatile ("jsr a6@(-0x2a6)"
  302.   : /* no output */
  303.   : "r" (a6), "r" (a0)
  304.   : "a0","a1","d0","d1", "memory");
  305. }
  306. static __inline LONG 
  307. BltBitMap (BASE_PAR_DECL struct BitMap *srcBitMap,long xSrc,long ySrc,struct BitMap *destBitMap,long xDest,long yDest,long xSize,long ySize,unsigned long minterm,unsigned long mask,PLANEPTR tempA)
  308. {
  309.   BASE_EXT_DECL
  310.   register LONG  _res  __asm("d0");
  311.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  312.   register struct BitMap *a0 __asm("a0") = srcBitMap;
  313.   register long d0 __asm("d0") = xSrc;
  314.   register long d1 __asm("d1") = ySrc;
  315.   register struct BitMap *a1 __asm("a1") = destBitMap;
  316.   register long d2 __asm("d2") = xDest;
  317.   register long d3 __asm("d3") = yDest;
  318.   register long d4 __asm("d4") = xSize;
  319.   register long d5 __asm("d5") = ySize;
  320.   register unsigned long d6 __asm("d6") = minterm;
  321.   register unsigned long d7 __asm("d7") = mask;
  322.   register PLANEPTR a2 __asm("a2") = tempA;
  323.   __asm __volatile ("jsr a6@(-0x1e)"
  324.   : "=r" (_res)
  325.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1), "r" (d2), "r" (d3), "r" (d4), "r" (d5), "r" (d6), "r" (d7), "r" (a2)
  326.   : "a0","a1","a2","d0","d1","d2","d3","d4","d5","d6","d7", "memory");
  327.   return _res;
  328. }
  329. static __inline void 
  330. BltBitMapRastPort (BASE_PAR_DECL struct BitMap *srcBitMap,long xSrc,long ySrc,struct RastPort *destRP,long xDest,long yDest,long xSize,long ySize,unsigned long minterm)
  331. {
  332.   BASE_EXT_DECL
  333.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  334.   register struct BitMap *a0 __asm("a0") = srcBitMap;
  335.   register long d0 __asm("d0") = xSrc;
  336.   register long d1 __asm("d1") = ySrc;
  337.   register struct RastPort *a1 __asm("a1") = destRP;
  338.   register long d2 __asm("d2") = xDest;
  339.   register long d3 __asm("d3") = yDest;
  340.   register long d4 __asm("d4") = xSize;
  341.   register long d5 __asm("d5") = ySize;
  342.   register unsigned long d6 __asm("d6") = minterm;
  343.   __asm __volatile ("jsr a6@(-0x25e)"
  344.   : /* no output */
  345.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1), "r" (d2), "r" (d3), "r" (d4), "r" (d5), "r" (d6)
  346.   : "a0","a1","d0","d1","d2","d3","d4","d5","d6", "memory");
  347. }
  348. static __inline void 
  349. BltClear (BASE_PAR_DECL PLANEPTR memBlock,unsigned long byteCount,unsigned long flags)
  350. {
  351.   BASE_EXT_DECL
  352.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  353.   register PLANEPTR a1 __asm("a1") = memBlock;
  354.   register unsigned long d0 __asm("d0") = byteCount;
  355.   register unsigned long d1 __asm("d1") = flags;
  356.   __asm __volatile ("jsr a6@(-0x12c)"
  357.   : /* no output */
  358.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  359.   : "a0","a1","d0","d1", "memory");
  360. }
  361. static __inline void 
  362. BltMaskBitMapRastPort (BASE_PAR_DECL struct BitMap *srcBitMap,long xSrc,long ySrc,struct RastPort *destRP,long xDest,long yDest,long xSize,long ySize,unsigned long minterm,PLANEPTR bltMask)
  363. {
  364.   BASE_EXT_DECL
  365.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  366.   register struct BitMap *a0 __asm("a0") = srcBitMap;
  367.   register long d0 __asm("d0") = xSrc;
  368.   register long d1 __asm("d1") = ySrc;
  369.   register struct RastPort *a1 __asm("a1") = destRP;
  370.   register long d2 __asm("d2") = xDest;
  371.   register long d3 __asm("d3") = yDest;
  372.   register long d4 __asm("d4") = xSize;
  373.   register long d5 __asm("d5") = ySize;
  374.   register unsigned long d6 __asm("d6") = minterm;
  375.   register PLANEPTR a2 __asm("a2") = bltMask;
  376.   __asm __volatile ("jsr a6@(-0x27c)"
  377.   : /* no output */
  378.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1), "r" (d2), "r" (d3), "r" (d4), "r" (d5), "r" (d6), "r" (a2)
  379.   : "a0","a1","a2","d0","d1","d2","d3","d4","d5","d6", "memory");
  380. }
  381. static __inline void 
  382. BltPattern (BASE_PAR_DECL struct RastPort *rp,PLANEPTR mask,long xMin,long yMin,long xMax,long yMax,unsigned long maskBPR)
  383. {
  384.   BASE_EXT_DECL
  385.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  386.   register struct RastPort *a1 __asm("a1") = rp;
  387.   register PLANEPTR a0 __asm("a0") = mask;
  388.   register long d0 __asm("d0") = xMin;
  389.   register long d1 __asm("d1") = yMin;
  390.   register long d2 __asm("d2") = xMax;
  391.   register long d3 __asm("d3") = yMax;
  392.   register unsigned long d4 __asm("d4") = maskBPR;
  393.   __asm __volatile ("jsr a6@(-0x138)"
  394.   : /* no output */
  395.   : "r" (a6), "r" (a1), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  396.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  397. }
  398. static __inline void 
  399. BltTemplate (BASE_PAR_DECL PLANEPTR source,long xSrc,long srcMod,struct RastPort *destRP,long xDest,long yDest,long xSize,long ySize)
  400. {
  401.   BASE_EXT_DECL
  402.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  403.   register PLANEPTR a0 __asm("a0") = source;
  404.   register long d0 __asm("d0") = xSrc;
  405.   register long d1 __asm("d1") = srcMod;
  406.   register struct RastPort *a1 __asm("a1") = destRP;
  407.   register long d2 __asm("d2") = xDest;
  408.   register long d3 __asm("d3") = yDest;
  409.   register long d4 __asm("d4") = xSize;
  410.   register long d5 __asm("d5") = ySize;
  411.   __asm __volatile ("jsr a6@(-0x24)"
  412.   : /* no output */
  413.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  414.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  415. }
  416. static __inline void 
  417. CBump (BASE_PAR_DECL struct UCopList *copList)
  418. {
  419.   BASE_EXT_DECL
  420.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  421.   register struct UCopList *a1 __asm("a1") = copList;
  422.   __asm __volatile ("jsr a6@(-0x16e)"
  423.   : /* no output */
  424.   : "r" (a6), "r" (a1)
  425.   : "a0","a1","d0","d1", "memory");
  426. }
  427. static __inline void 
  428. CMove (BASE_PAR_DECL struct UCopList *copList,APTR destination,long data)
  429. {
  430.   BASE_EXT_DECL
  431.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  432.   register struct UCopList *a1 __asm("a1") = copList;
  433.   register APTR d0 __asm("d0") = destination;
  434.   register long d1 __asm("d1") = data;
  435.   __asm __volatile ("jsr a6@(-0x174)"
  436.   : /* no output */
  437.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  438.   : "a0","a1","d0","d1", "memory");
  439. }
  440. static __inline void 
  441. CWait (BASE_PAR_DECL struct UCopList *copList,long v,long h)
  442. {
  443.   BASE_EXT_DECL
  444.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  445.   register struct UCopList *a1 __asm("a1") = copList;
  446.   register long d0 __asm("d0") = v;
  447.   register long d1 __asm("d1") = h;
  448.   __asm __volatile ("jsr a6@(-0x17a)"
  449.   : /* no output */
  450.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  451.   : "a0","a1","d0","d1", "memory");
  452. }
  453. static __inline UWORD 
  454. CalcIVG (BASE_PAR_DECL struct View *v,struct ViewPort *vp)
  455. {
  456.   BASE_EXT_DECL
  457.   register UWORD  _res  __asm("d0");
  458.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  459.   register struct View *a0 __asm("a0") = v;
  460.   register struct ViewPort *a1 __asm("a1") = vp;
  461.   __asm __volatile ("jsr a6@(-0x33c)"
  462.   : "=r" (_res)
  463.   : "r" (a6), "r" (a0), "r" (a1)
  464.   : "a0","a1","d0","d1", "memory");
  465.   return _res;
  466. }
  467. static __inline LONG 
  468. ChangeExtSpriteA (BASE_PAR_DECL struct ViewPort *vp,struct ExtSprite *oldsprite,struct ExtSprite *newsprite,struct TagItem *tags)
  469. {
  470.   BASE_EXT_DECL
  471.   register LONG  _res  __asm("d0");
  472.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  473.   register struct ViewPort *a0 __asm("a0") = vp;
  474.   register struct ExtSprite *a1 __asm("a1") = oldsprite;
  475.   register struct ExtSprite *a2 __asm("a2") = newsprite;
  476.   register struct TagItem *a3 __asm("a3") = tags;
  477.   __asm __volatile ("jsr a6@(-0x402)"
  478.   : "=r" (_res)
  479.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2), "r" (a3)
  480.   : "a0","a1","a2","a3","d0","d1", "memory");
  481.   return _res;
  482. }
  483. static __inline void 
  484. ChangeSprite (BASE_PAR_DECL struct ViewPort *vp,struct SimpleSprite *sprite,PLANEPTR newData)
  485. {
  486.   BASE_EXT_DECL
  487.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  488.   register struct ViewPort *a0 __asm("a0") = vp;
  489.   register struct SimpleSprite *a1 __asm("a1") = sprite;
  490.   register PLANEPTR a2 __asm("a2") = newData;
  491.   __asm __volatile ("jsr a6@(-0x1a4)"
  492.   : /* no output */
  493.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  494.   : "a0","a1","a2","d0","d1", "memory");
  495. }
  496. static __inline void 
  497. ChangeVPBitMap (BASE_PAR_DECL struct ViewPort *vp,struct BitMap *bm,struct DBufInfo *db)
  498. {
  499.   BASE_EXT_DECL
  500.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  501.   register struct ViewPort *a0 __asm("a0") = vp;
  502.   register struct BitMap *a1 __asm("a1") = bm;
  503.   register struct DBufInfo *a2 __asm("a2") = db;
  504.   __asm __volatile ("jsr a6@(-0x3ae)"
  505.   : /* no output */
  506.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  507.   : "a0","a1","a2","d0","d1", "memory");
  508. }
  509. static __inline void 
  510. ClearEOL (BASE_PAR_DECL struct RastPort *rp)
  511. {
  512.   BASE_EXT_DECL
  513.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  514.   register struct RastPort *a1 __asm("a1") = rp;
  515.   __asm __volatile ("jsr a6@(-0x2a)"
  516.   : /* no output */
  517.   : "r" (a6), "r" (a1)
  518.   : "a0","a1","d0","d1", "memory");
  519. }
  520. static __inline BOOL 
  521. ClearRectRegion (BASE_PAR_DECL struct Region *region,struct Rectangle *rectangle)
  522. {
  523.   BASE_EXT_DECL
  524.   register BOOL  _res  __asm("d0");
  525.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  526.   register struct Region *a0 __asm("a0") = region;
  527.   register struct Rectangle *a1 __asm("a1") = rectangle;
  528.   __asm __volatile ("jsr a6@(-0x20a)"
  529.   : "=r" (_res)
  530.   : "r" (a6), "r" (a0), "r" (a1)
  531.   : "a0","a1","d0","d1", "memory");
  532.   return _res;
  533. }
  534. static __inline void 
  535. ClearRegion (BASE_PAR_DECL struct Region *region)
  536. {
  537.   BASE_EXT_DECL
  538.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  539.   register struct Region *a0 __asm("a0") = region;
  540.   __asm __volatile ("jsr a6@(-0x210)"
  541.   : /* no output */
  542.   : "r" (a6), "r" (a0)
  543.   : "a0","a1","d0","d1", "memory");
  544. }
  545. static __inline void 
  546. ClearScreen (BASE_PAR_DECL struct RastPort *rp)
  547. {
  548.   BASE_EXT_DECL
  549.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  550.   register struct RastPort *a1 __asm("a1") = rp;
  551.   __asm __volatile ("jsr a6@(-0x30)"
  552.   : /* no output */
  553.   : "r" (a6), "r" (a1)
  554.   : "a0","a1","d0","d1", "memory");
  555. }
  556. static __inline void 
  557. ClipBlit (BASE_PAR_DECL struct RastPort *srcRP,long xSrc,long ySrc,struct RastPort *destRP,long xDest,long yDest,long xSize,long ySize,unsigned long minterm)
  558. {
  559.   BASE_EXT_DECL
  560.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  561.   register struct RastPort *a0 __asm("a0") = srcRP;
  562.   register long d0 __asm("d0") = xSrc;
  563.   register long d1 __asm("d1") = ySrc;
  564.   register struct RastPort *a1 __asm("a1") = destRP;
  565.   register long d2 __asm("d2") = xDest;
  566.   register long d3 __asm("d3") = yDest;
  567.   register long d4 __asm("d4") = xSize;
  568.   register long d5 __asm("d5") = ySize;
  569.   register unsigned long d6 __asm("d6") = minterm;
  570.   __asm __volatile ("jsr a6@(-0x228)"
  571.   : /* no output */
  572.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1), "r" (d2), "r" (d3), "r" (d4), "r" (d5), "r" (d6)
  573.   : "a0","a1","d0","d1","d2","d3","d4","d5","d6", "memory");
  574. }
  575. static __inline void 
  576. CloseFont (BASE_PAR_DECL struct TextFont *textFont)
  577. {
  578.   BASE_EXT_DECL
  579.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  580.   register struct TextFont *a1 __asm("a1") = textFont;
  581.   __asm __volatile ("jsr a6@(-0x4e)"
  582.   : /* no output */
  583.   : "r" (a6), "r" (a1)
  584.   : "a0","a1","d0","d1", "memory");
  585. }
  586. static __inline BOOL 
  587. CloseMonitor (BASE_PAR_DECL struct MonitorSpec *monitorSpec)
  588. {
  589.   BASE_EXT_DECL
  590.   register BOOL  _res  __asm("d0");
  591.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  592.   register struct MonitorSpec *a0 __asm("a0") = monitorSpec;
  593.   __asm __volatile ("jsr a6@(-0x2d0)"
  594.   : "=r" (_res)
  595.   : "r" (a6), "r" (a0)
  596.   : "a0","a1","d0","d1", "memory");
  597.   return _res;
  598. }
  599. static __inline ULONG 
  600. CoerceMode (BASE_PAR_DECL struct ViewPort *vp,unsigned long monitorid,unsigned long flags)
  601. {
  602.   BASE_EXT_DECL
  603.   register ULONG  _res  __asm("d0");
  604.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  605.   register struct ViewPort *a0 __asm("a0") = vp;
  606.   register unsigned long d0 __asm("d0") = monitorid;
  607.   register unsigned long d1 __asm("d1") = flags;
  608.   __asm __volatile ("jsr a6@(-0x3a8)"
  609.   : "=r" (_res)
  610.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  611.   : "a0","a1","d0","d1", "memory");
  612.   return _res;
  613. }
  614. static __inline void 
  615. CopySBitMap (BASE_PAR_DECL struct Layer *layer)
  616. {
  617.   BASE_EXT_DECL
  618.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  619.   register struct Layer *a0 __asm("a0") = layer;
  620.   __asm __volatile ("jsr a6@(-0x1c2)"
  621.   : /* no output */
  622.   : "r" (a6), "r" (a0)
  623.   : "a0","a1","d0","d1", "memory");
  624. }
  625. static __inline void 
  626. DisownBlitter (BASE_PAR_DECL0)
  627. {
  628.   BASE_EXT_DECL
  629.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  630.   __asm __volatile ("jsr a6@(-0x1ce)"
  631.   : /* no output */
  632.   : "r" (a6)
  633.   : "a0","a1","d0","d1", "memory");
  634. }
  635. static __inline void 
  636. DisposeRegion (BASE_PAR_DECL struct Region *region)
  637. {
  638.   BASE_EXT_DECL
  639.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  640.   register struct Region *a0 __asm("a0") = region;
  641.   __asm __volatile ("jsr a6@(-0x216)"
  642.   : /* no output */
  643.   : "r" (a6), "r" (a0)
  644.   : "a0","a1","d0","d1", "memory");
  645. }
  646. static __inline void 
  647. DoCollision (BASE_PAR_DECL struct RastPort *rp)
  648. {
  649.   BASE_EXT_DECL
  650.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  651.   register struct RastPort *a1 __asm("a1") = rp;
  652.   __asm __volatile ("jsr a6@(-0x6c)"
  653.   : /* no output */
  654.   : "r" (a6), "r" (a1)
  655.   : "a0","a1","d0","d1", "memory");
  656. }
  657. static __inline void 
  658. Draw (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  659. {
  660.   BASE_EXT_DECL
  661.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  662.   register struct RastPort *a1 __asm("a1") = rp;
  663.   register long d0 __asm("d0") = x;
  664.   register long d1 __asm("d1") = y;
  665.   __asm __volatile ("jsr a6@(-0xf6)"
  666.   : /* no output */
  667.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  668.   : "a0","a1","d0","d1", "memory");
  669. }
  670. static __inline void 
  671. DrawEllipse (BASE_PAR_DECL struct RastPort *rp,long xCenter,long yCenter,long a,long b)
  672. {
  673.   BASE_EXT_DECL
  674.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  675.   register struct RastPort *a1 __asm("a1") = rp;
  676.   register long d0 __asm("d0") = xCenter;
  677.   register long d1 __asm("d1") = yCenter;
  678.   register long d2 __asm("d2") = a;
  679.   register long d3 __asm("d3") = b;
  680.   __asm __volatile ("jsr a6@(-0xb4)"
  681.   : /* no output */
  682.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  683.   : "a0","a1","d0","d1","d2","d3", "memory");
  684. }
  685. static __inline void 
  686. DrawGList (BASE_PAR_DECL struct RastPort *rp,struct ViewPort *vp)
  687. {
  688.   BASE_EXT_DECL
  689.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  690.   register struct RastPort *a1 __asm("a1") = rp;
  691.   register struct ViewPort *a0 __asm("a0") = vp;
  692.   __asm __volatile ("jsr a6@(-0x72)"
  693.   : /* no output */
  694.   : "r" (a6), "r" (a1), "r" (a0)
  695.   : "a0","a1","d0","d1", "memory");
  696. }
  697. static __inline void 
  698. EraseRect (BASE_PAR_DECL struct RastPort *rp,long xMin,long yMin,long xMax,long yMax)
  699. {
  700.   BASE_EXT_DECL
  701.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  702.   register struct RastPort *a1 __asm("a1") = rp;
  703.   register long d0 __asm("d0") = xMin;
  704.   register long d1 __asm("d1") = yMin;
  705.   register long d2 __asm("d2") = xMax;
  706.   register long d3 __asm("d3") = yMax;
  707.   __asm __volatile ("jsr a6@(-0x32a)"
  708.   : /* no output */
  709.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  710.   : "a0","a1","d0","d1","d2","d3", "memory");
  711. }
  712. static __inline ULONG 
  713. ExtendFont (BASE_PAR_DECL struct TextFont *font,struct TagItem *fontTags)
  714. {
  715.   BASE_EXT_DECL
  716.   register ULONG  _res  __asm("d0");
  717.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  718.   register struct TextFont *a0 __asm("a0") = font;
  719.   register struct TagItem *a1 __asm("a1") = fontTags;
  720.   __asm __volatile ("jsr a6@(-0x330)"
  721.   : "=r" (_res)
  722.   : "r" (a6), "r" (a0), "r" (a1)
  723.   : "a0","a1","d0","d1", "memory");
  724.   return _res;
  725. }
  726. #ifndef NO_INLINE_STDARG
  727. #define ExtendFontTags(a0, tags...) \
  728.   ({ struct TagItem _tags[] = { tags }; ExtendFont ((a0), _tags); })
  729. #endif /* not NO_INLINE_STDARG */
  730. static __inline LONG 
  731. FindColor (BASE_PAR_DECL struct ColorMap *cm,unsigned long r,unsigned long g,unsigned long b,long maxcolor)
  732. {
  733.   BASE_EXT_DECL
  734.   register LONG  _res  __asm("d0");
  735.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  736.   register struct ColorMap *a3 __asm("a3") = cm;
  737.   register unsigned long d1 __asm("d1") = r;
  738.   register unsigned long d2 __asm("d2") = g;
  739.   register unsigned long d3 __asm("d3") = b;
  740.   register long d4 __asm("d4") = maxcolor;
  741.   __asm __volatile ("jsr a6@(-0x3f0)"
  742.   : "=r" (_res)
  743.   : "r" (a6), "r" (a3), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  744.   : "a0","a1","a3","d0","d1","d2","d3","d4", "memory");
  745.   return _res;
  746. }
  747. static __inline DisplayInfoHandle 
  748. FindDisplayInfo (BASE_PAR_DECL unsigned long displayID)
  749. {
  750.   BASE_EXT_DECL
  751.   register DisplayInfoHandle  _res  __asm("d0");
  752.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  753.   register unsigned long d0 __asm("d0") = displayID;
  754.   __asm __volatile ("jsr a6@(-0x2d6)"
  755.   : "=r" (_res)
  756.   : "r" (a6), "r" (d0)
  757.   : "a0","a1","d0","d1", "memory");
  758.   return _res;
  759. }
  760. static __inline BOOL 
  761. Flood (BASE_PAR_DECL struct RastPort *rp,unsigned long mode,long x,long y)
  762. {
  763.   BASE_EXT_DECL
  764.   register BOOL  _res  __asm("d0");
  765.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  766.   register struct RastPort *a1 __asm("a1") = rp;
  767.   register unsigned long d2 __asm("d2") = mode;
  768.   register long d0 __asm("d0") = x;
  769.   register long d1 __asm("d1") = y;
  770.   __asm __volatile ("jsr a6@(-0x14a)"
  771.   : "=r" (_res)
  772.   : "r" (a6), "r" (a1), "r" (d2), "r" (d0), "r" (d1)
  773.   : "a0","a1","d0","d1","d2", "memory");
  774.   return _res;
  775. }
  776. static __inline void 
  777. FontExtent (BASE_PAR_DECL struct TextFont *font,struct TextExtent *fontExtent)
  778. {
  779.   BASE_EXT_DECL
  780.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  781.   register struct TextFont *a0 __asm("a0") = font;
  782.   register struct TextExtent *a1 __asm("a1") = fontExtent;
  783.   __asm __volatile ("jsr a6@(-0x2fa)"
  784.   : /* no output */
  785.   : "r" (a6), "r" (a0), "r" (a1)
  786.   : "a0","a1","d0","d1", "memory");
  787. }
  788. static __inline void 
  789. FreeBitMap (BASE_PAR_DECL struct BitMap *bm)
  790. {
  791.   BASE_EXT_DECL
  792.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  793.   register struct BitMap *a0 __asm("a0") = bm;
  794.   __asm __volatile ("jsr a6@(-0x39c)"
  795.   : /* no output */
  796.   : "r" (a6), "r" (a0)
  797.   : "a0","a1","d0","d1", "memory");
  798. }
  799. static __inline void 
  800. FreeColorMap (BASE_PAR_DECL struct ColorMap *colorMap)
  801. {
  802.   BASE_EXT_DECL
  803.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  804.   register struct ColorMap *a0 __asm("a0") = colorMap;
  805.   __asm __volatile ("jsr a6@(-0x240)"
  806.   : /* no output */
  807.   : "r" (a6), "r" (a0)
  808.   : "a0","a1","d0","d1", "memory");
  809. }
  810. static __inline void 
  811. FreeCopList (BASE_PAR_DECL struct CopList *copList)
  812. {
  813.   BASE_EXT_DECL
  814.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  815.   register struct CopList *a0 __asm("a0") = copList;
  816.   __asm __volatile ("jsr a6@(-0x222)"
  817.   : /* no output */
  818.   : "r" (a6), "r" (a0)
  819.   : "a0","a1","d0","d1", "memory");
  820. }
  821. static __inline void 
  822. FreeCprList (BASE_PAR_DECL struct cprlist *cprList)
  823. {
  824.   BASE_EXT_DECL
  825.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  826.   register struct cprlist *a0 __asm("a0") = cprList;
  827.   __asm __volatile ("jsr a6@(-0x234)"
  828.   : /* no output */
  829.   : "r" (a6), "r" (a0)
  830.   : "a0","a1","d0","d1", "memory");
  831. }
  832. static __inline void 
  833. FreeDBufInfo (BASE_PAR_DECL struct DBufInfo *dbi)
  834. {
  835.   BASE_EXT_DECL
  836.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  837.   register struct DBufInfo *a1 __asm("a1") = dbi;
  838.   __asm __volatile ("jsr a6@(-0x3cc)"
  839.   : /* no output */
  840.   : "r" (a6), "r" (a1)
  841.   : "a0","a1","d0","d1", "memory");
  842. }
  843. static __inline void 
  844. FreeGBuffers (BASE_PAR_DECL struct AnimOb *anOb,struct RastPort *rp,long flag)
  845. {
  846.   BASE_EXT_DECL
  847.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  848.   register struct AnimOb *a0 __asm("a0") = anOb;
  849.   register struct RastPort *a1 __asm("a1") = rp;
  850.   register long d0 __asm("d0") = flag;
  851.   __asm __volatile ("jsr a6@(-0x258)"
  852.   : /* no output */
  853.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  854.   : "a0","a1","d0","d1", "memory");
  855. }
  856. static __inline void 
  857. FreeRaster (BASE_PAR_DECL PLANEPTR p,unsigned long width,unsigned long height)
  858. {
  859.   BASE_EXT_DECL
  860.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  861.   register PLANEPTR a0 __asm("a0") = p;
  862.   register unsigned long d0 __asm("d0") = width;
  863.   register unsigned long d1 __asm("d1") = height;
  864.   __asm __volatile ("jsr a6@(-0x1f2)"
  865.   : /* no output */
  866.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1)
  867.   : "a0","a1","d0","d1", "memory");
  868. }
  869. static __inline void 
  870. FreeSprite (BASE_PAR_DECL long num)
  871. {
  872.   BASE_EXT_DECL
  873.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  874.   register long d0 __asm("d0") = num;
  875.   __asm __volatile ("jsr a6@(-0x19e)"
  876.   : /* no output */
  877.   : "r" (a6), "r" (d0)
  878.   : "a0","a1","d0","d1", "memory");
  879. }
  880. static __inline void 
  881. FreeSpriteData (BASE_PAR_DECL struct ExtSprite *sp)
  882. {
  883.   BASE_EXT_DECL
  884.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  885.   register struct ExtSprite *a2 __asm("a2") = sp;
  886.   __asm __volatile ("jsr a6@(-0x408)"
  887.   : /* no output */
  888.   : "r" (a6), "r" (a2)
  889.   : "a0","a1","a2","d0","d1", "memory");
  890. }
  891. static __inline void 
  892. FreeVPortCopLists (BASE_PAR_DECL struct ViewPort *vp)
  893. {
  894.   BASE_EXT_DECL
  895.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  896.   register struct ViewPort *a0 __asm("a0") = vp;
  897.   __asm __volatile ("jsr a6@(-0x21c)"
  898.   : /* no output */
  899.   : "r" (a6), "r" (a0)
  900.   : "a0","a1","d0","d1", "memory");
  901. }
  902. static __inline ULONG 
  903. GetAPen (BASE_PAR_DECL struct RastPort *rp)
  904. {
  905.   BASE_EXT_DECL
  906.   register ULONG  _res  __asm("d0");
  907.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  908.   register struct RastPort *a0 __asm("a0") = rp;
  909.   __asm __volatile ("jsr a6@(-0x35a)"
  910.   : "=r" (_res)
  911.   : "r" (a6), "r" (a0)
  912.   : "a0","a1","d0","d1", "memory");
  913.   return _res;
  914. }
  915. static __inline ULONG 
  916. GetBPen (BASE_PAR_DECL struct RastPort *rp)
  917. {
  918.   BASE_EXT_DECL
  919.   register ULONG  _res  __asm("d0");
  920.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  921.   register struct RastPort *a0 __asm("a0") = rp;
  922.   __asm __volatile ("jsr a6@(-0x360)"
  923.   : "=r" (_res)
  924.   : "r" (a6), "r" (a0)
  925.   : "a0","a1","d0","d1", "memory");
  926.   return _res;
  927. }
  928. static __inline ULONG 
  929. GetBitMapAttr (BASE_PAR_DECL struct BitMap *bm,unsigned long attrnum)
  930. {
  931.   BASE_EXT_DECL
  932.   register ULONG  _res  __asm("d0");
  933.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  934.   register struct BitMap *a0 __asm("a0") = bm;
  935.   register unsigned long d1 __asm("d1") = attrnum;
  936.   __asm __volatile ("jsr a6@(-0x3c0)"
  937.   : "=r" (_res)
  938.   : "r" (a6), "r" (a0), "r" (d1)
  939.   : "a0","a1","d0","d1", "memory");
  940.   return _res;
  941. }
  942. static __inline struct ColorMap *
  943. GetColorMap (BASE_PAR_DECL long entries)
  944. {
  945.   BASE_EXT_DECL
  946.   register struct ColorMap * _res  __asm("d0");
  947.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  948.   register long d0 __asm("d0") = entries;
  949.   __asm __volatile ("jsr a6@(-0x23a)"
  950.   : "=r" (_res)
  951.   : "r" (a6), "r" (d0)
  952.   : "a0","a1","d0","d1", "memory");
  953.   return _res;
  954. }
  955. static __inline ULONG 
  956. GetDisplayInfoData (BASE_PAR_DECL DisplayInfoHandle handle,UBYTE *buf,unsigned long size,unsigned long tagID,unsigned long displayID)
  957. {
  958.   BASE_EXT_DECL
  959.   register ULONG  _res  __asm("d0");
  960.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  961.   register DisplayInfoHandle a0 __asm("a0") = handle;
  962.   register UBYTE *a1 __asm("a1") = buf;
  963.   register unsigned long d0 __asm("d0") = size;
  964.   register unsigned long d1 __asm("d1") = tagID;
  965.   register unsigned long d2 __asm("d2") = displayID;
  966.   __asm __volatile ("jsr a6@(-0x2f4)"
  967.   : "=r" (_res)
  968.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1), "r" (d2)
  969.   : "a0","a1","d0","d1","d2", "memory");
  970.   return _res;
  971. }
  972. static __inline ULONG 
  973. GetDrMd (BASE_PAR_DECL struct RastPort *rp)
  974. {
  975.   BASE_EXT_DECL
  976.   register ULONG  _res  __asm("d0");
  977.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  978.   register struct RastPort *a0 __asm("a0") = rp;
  979.   __asm __volatile ("jsr a6@(-0x366)"
  980.   : "=r" (_res)
  981.   : "r" (a6), "r" (a0)
  982.   : "a0","a1","d0","d1", "memory");
  983.   return _res;
  984. }
  985. static __inline LONG 
  986. GetExtSpriteA (BASE_PAR_DECL struct ExtSprite *ss,struct TagItem *tags)
  987. {
  988.   BASE_EXT_DECL
  989.   register LONG  _res  __asm("d0");
  990.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  991.   register struct ExtSprite *a2 __asm("a2") = ss;
  992.   register struct TagItem *a1 __asm("a1") = tags;
  993.   __asm __volatile ("jsr a6@(-0x3a2)"
  994.   : "=r" (_res)
  995.   : "r" (a6), "r" (a2), "r" (a1)
  996.   : "a0","a1","a2","d0","d1", "memory");
  997.   return _res;
  998. }
  999. static __inline BOOL 
  1000. GetGBuffers (BASE_PAR_DECL struct AnimOb *anOb,struct RastPort *rp,long flag)
  1001. {
  1002.   BASE_EXT_DECL
  1003.   register BOOL  _res  __asm("d0");
  1004.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1005.   register struct AnimOb *a0 __asm("a0") = anOb;
  1006.   register struct RastPort *a1 __asm("a1") = rp;
  1007.   register long d0 __asm("d0") = flag;
  1008.   __asm __volatile ("jsr a6@(-0xa8)"
  1009.   : "=r" (_res)
  1010.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  1011.   : "a0","a1","d0","d1", "memory");
  1012.   return _res;
  1013. }
  1014. static __inline ULONG 
  1015. GetOutlinePen (BASE_PAR_DECL struct RastPort *rp)
  1016. {
  1017.   BASE_EXT_DECL
  1018.   register ULONG  _res  __asm("d0");
  1019.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1020.   register struct RastPort *a0 __asm("a0") = rp;
  1021.   __asm __volatile ("jsr a6@(-0x36c)"
  1022.   : "=r" (_res)
  1023.   : "r" (a6), "r" (a0)
  1024.   : "a0","a1","d0","d1", "memory");
  1025.   return _res;
  1026. }
  1027. static __inline void 
  1028. GetRGB32 (BASE_PAR_DECL struct ColorMap *cm,unsigned long firstcolor,unsigned long ncolors,ULONG *table)
  1029. {
  1030.   BASE_EXT_DECL
  1031.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1032.   register struct ColorMap *a0 __asm("a0") = cm;
  1033.   register unsigned long d0 __asm("d0") = firstcolor;
  1034.   register unsigned long d1 __asm("d1") = ncolors;
  1035.   register ULONG *a1 __asm("a1") = table;
  1036.   __asm __volatile ("jsr a6@(-0x384)"
  1037.   : /* no output */
  1038.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (a1)
  1039.   : "a0","a1","d0","d1", "memory");
  1040. }
  1041. static __inline ULONG 
  1042. GetRGB4 (BASE_PAR_DECL struct ColorMap *colorMap,long entry)
  1043. {
  1044.   BASE_EXT_DECL
  1045.   register ULONG  _res  __asm("d0");
  1046.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1047.   register struct ColorMap *a0 __asm("a0") = colorMap;
  1048.   register long d0 __asm("d0") = entry;
  1049.   __asm __volatile ("jsr a6@(-0x246)"
  1050.   : "=r" (_res)
  1051.   : "r" (a6), "r" (a0), "r" (d0)
  1052.   : "a0","a1","d0","d1", "memory");
  1053.   return _res;
  1054. }
  1055. static __inline void 
  1056. GetRPAttrsA (BASE_PAR_DECL struct RastPort *rp,struct TagItem *tags)
  1057. {
  1058.   BASE_EXT_DECL
  1059.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1060.   register struct RastPort *a0 __asm("a0") = rp;
  1061.   register struct TagItem *a1 __asm("a1") = tags;
  1062.   __asm __volatile ("jsr a6@(-0x414)"
  1063.   : /* no output */
  1064.   : "r" (a6), "r" (a0), "r" (a1)
  1065.   : "a0","a1","d0","d1", "memory");
  1066. }
  1067. static __inline WORD 
  1068. GetSprite (BASE_PAR_DECL struct SimpleSprite *sprite,long num)
  1069. {
  1070.   BASE_EXT_DECL
  1071.   register WORD  _res  __asm("d0");
  1072.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1073.   register struct SimpleSprite *a0 __asm("a0") = sprite;
  1074.   register long d0 __asm("d0") = num;
  1075.   __asm __volatile ("jsr a6@(-0x198)"
  1076.   : "=r" (_res)
  1077.   : "r" (a6), "r" (a0), "r" (d0)
  1078.   : "a0","a1","d0","d1", "memory");
  1079.   return _res;
  1080. }
  1081. static __inline LONG 
  1082. GetVPModeID (BASE_PAR_DECL struct ViewPort *vp)
  1083. {
  1084.   BASE_EXT_DECL
  1085.   register LONG  _res  __asm("d0");
  1086.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1087.   register struct ViewPort *a0 __asm("a0") = vp;
  1088.   __asm __volatile ("jsr a6@(-0x318)"
  1089.   : "=r" (_res)
  1090.   : "r" (a6), "r" (a0)
  1091.   : "a0","a1","d0","d1", "memory");
  1092.   return _res;
  1093. }
  1094. static __inline void 
  1095. GfxAssociate (BASE_PAR_DECL APTR associateNode,APTR gfxNodePtr)
  1096. {
  1097.   BASE_EXT_DECL
  1098.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1099.   register APTR a0 __asm("a0") = associateNode;
  1100.   register APTR a1 __asm("a1") = gfxNodePtr;
  1101.   __asm __volatile ("jsr a6@(-0x2a0)"
  1102.   : /* no output */
  1103.   : "r" (a6), "r" (a0), "r" (a1)
  1104.   : "a0","a1","d0","d1", "memory");
  1105. }
  1106. static __inline void 
  1107. GfxFree (BASE_PAR_DECL APTR gfxNodePtr)
  1108. {
  1109.   BASE_EXT_DECL
  1110.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1111.   register APTR a0 __asm("a0") = gfxNodePtr;
  1112.   __asm __volatile ("jsr a6@(-0x29a)"
  1113.   : /* no output */
  1114.   : "r" (a6), "r" (a0)
  1115.   : "a0","a1","d0","d1", "memory");
  1116. }
  1117. static __inline APTR 
  1118. GfxLookUp (BASE_PAR_DECL APTR associateNode)
  1119. {
  1120.   BASE_EXT_DECL
  1121.   register APTR  _res  __asm("d0");
  1122.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1123.   register APTR a0 __asm("a0") = associateNode;
  1124.   __asm __volatile ("jsr a6@(-0x2be)"
  1125.   : "=r" (_res)
  1126.   : "r" (a6), "r" (a0)
  1127.   : "a0","a1","d0","d1", "memory");
  1128.   return _res;
  1129. }
  1130. static __inline APTR 
  1131. GfxNew (BASE_PAR_DECL unsigned long gfxNodeType)
  1132. {
  1133.   BASE_EXT_DECL
  1134.   register APTR  _res  __asm("d0");
  1135.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1136.   register unsigned long d0 __asm("d0") = gfxNodeType;
  1137.   __asm __volatile ("jsr a6@(-0x294)"
  1138.   : "=r" (_res)
  1139.   : "r" (a6), "r" (d0)
  1140.   : "a0","a1","d0","d1", "memory");
  1141.   return _res;
  1142. }
  1143. static __inline void 
  1144. InitArea (BASE_PAR_DECL struct AreaInfo *areaInfo,APTR vectorBuffer,long maxVectors)
  1145. {
  1146.   BASE_EXT_DECL
  1147.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1148.   register struct AreaInfo *a0 __asm("a0") = areaInfo;
  1149.   register APTR a1 __asm("a1") = vectorBuffer;
  1150.   register long d0 __asm("d0") = maxVectors;
  1151.   __asm __volatile ("jsr a6@(-0x11a)"
  1152.   : /* no output */
  1153.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  1154.   : "a0","a1","d0","d1", "memory");
  1155. }
  1156. static __inline void 
  1157. InitBitMap (BASE_PAR_DECL struct BitMap *bitMap,long depth,long width,long height)
  1158. {
  1159.   BASE_EXT_DECL
  1160.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1161.   register struct BitMap *a0 __asm("a0") = bitMap;
  1162.   register long d0 __asm("d0") = depth;
  1163.   register long d1 __asm("d1") = width;
  1164.   register long d2 __asm("d2") = height;
  1165.   __asm __volatile ("jsr a6@(-0x186)"
  1166.   : /* no output */
  1167.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2)
  1168.   : "a0","a1","d0","d1","d2", "memory");
  1169. }
  1170. static __inline void 
  1171. InitGMasks (BASE_PAR_DECL struct AnimOb *anOb)
  1172. {
  1173.   BASE_EXT_DECL
  1174.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1175.   register struct AnimOb *a0 __asm("a0") = anOb;
  1176.   __asm __volatile ("jsr a6@(-0xae)"
  1177.   : /* no output */
  1178.   : "r" (a6), "r" (a0)
  1179.   : "a0","a1","d0","d1", "memory");
  1180. }
  1181. static __inline void 
  1182. InitGels (BASE_PAR_DECL struct VSprite *head,struct VSprite *tail,struct GelsInfo *gelsInfo)
  1183. {
  1184.   BASE_EXT_DECL
  1185.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1186.   register struct VSprite *a0 __asm("a0") = head;
  1187.   register struct VSprite *a1 __asm("a1") = tail;
  1188.   register struct GelsInfo *a2 __asm("a2") = gelsInfo;
  1189.   __asm __volatile ("jsr a6@(-0x78)"
  1190.   : /* no output */
  1191.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  1192.   : "a0","a1","a2","d0","d1", "memory");
  1193. }
  1194. static __inline void 
  1195. InitMasks (BASE_PAR_DECL struct VSprite *vSprite)
  1196. {
  1197.   BASE_EXT_DECL
  1198.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1199.   register struct VSprite *a0 __asm("a0") = vSprite;
  1200.   __asm __volatile ("jsr a6@(-0x7e)"
  1201.   : /* no output */
  1202.   : "r" (a6), "r" (a0)
  1203.   : "a0","a1","d0","d1", "memory");
  1204. }
  1205. static __inline void 
  1206. InitRastPort (BASE_PAR_DECL struct RastPort *rp)
  1207. {
  1208.   BASE_EXT_DECL
  1209.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1210.   register struct RastPort *a1 __asm("a1") = rp;
  1211.   __asm __volatile ("jsr a6@(-0xc6)"
  1212.   : /* no output */
  1213.   : "r" (a6), "r" (a1)
  1214.   : "a0","a1","d0","d1", "memory");
  1215. }
  1216. static __inline struct TmpRas *
  1217. InitTmpRas (BASE_PAR_DECL struct TmpRas *tmpRas,PLANEPTR buffer,long size)
  1218. {
  1219.   BASE_EXT_DECL
  1220.   register struct TmpRas * _res  __asm("d0");
  1221.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1222.   register struct TmpRas *a0 __asm("a0") = tmpRas;
  1223.   register PLANEPTR a1 __asm("a1") = buffer;
  1224.   register long d0 __asm("d0") = size;
  1225.   __asm __volatile ("jsr a6@(-0x1d4)"
  1226.   : "=r" (_res)
  1227.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  1228.   : "a0","a1","d0","d1", "memory");
  1229.   return _res;
  1230. }
  1231. static __inline void 
  1232. InitVPort (BASE_PAR_DECL struct ViewPort *vp)
  1233. {
  1234.   BASE_EXT_DECL
  1235.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1236.   register struct ViewPort *a0 __asm("a0") = vp;
  1237.   __asm __volatile ("jsr a6@(-0xcc)"
  1238.   : /* no output */
  1239.   : "r" (a6), "r" (a0)
  1240.   : "a0","a1","d0","d1", "memory");
  1241. }
  1242. static __inline void 
  1243. InitView (BASE_PAR_DECL struct View *view)
  1244. {
  1245.   BASE_EXT_DECL
  1246.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1247.   register struct View *a1 __asm("a1") = view;
  1248.   __asm __volatile ("jsr a6@(-0x168)"
  1249.   : /* no output */
  1250.   : "r" (a6), "r" (a1)
  1251.   : "a0","a1","d0","d1", "memory");
  1252. }
  1253. static __inline void 
  1254. LoadRGB32 (BASE_PAR_DECL struct ViewPort *vp,ULONG *table)
  1255. {
  1256.   BASE_EXT_DECL
  1257.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1258.   register struct ViewPort *a0 __asm("a0") = vp;
  1259.   register ULONG *a1 __asm("a1") = table;
  1260.   __asm __volatile ("jsr a6@(-0x372)"
  1261.   : /* no output */
  1262.   : "r" (a6), "r" (a0), "r" (a1)
  1263.   : "a0","a1","d0","d1", "memory");
  1264. }
  1265. static __inline void 
  1266. LoadRGB4 (BASE_PAR_DECL struct ViewPort *vp,UWORD *colors,long count)
  1267. {
  1268.   BASE_EXT_DECL
  1269.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1270.   register struct ViewPort *a0 __asm("a0") = vp;
  1271.   register UWORD *a1 __asm("a1") = colors;
  1272.   register long d0 __asm("d0") = count;
  1273.   __asm __volatile ("jsr a6@(-0xc0)"
  1274.   : /* no output */
  1275.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0)
  1276.   : "a0","a1","d0","d1", "memory");
  1277. }
  1278. static __inline void 
  1279. LoadView (BASE_PAR_DECL struct View *view)
  1280. {
  1281.   BASE_EXT_DECL
  1282.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1283.   register struct View *a1 __asm("a1") = view;
  1284.   __asm __volatile ("jsr a6@(-0xde)"
  1285.   : /* no output */
  1286.   : "r" (a6), "r" (a1)
  1287.   : "a0","a1","d0","d1", "memory");
  1288. }
  1289. static __inline void 
  1290. LockLayerRom (BASE_PAR_DECL struct Layer *layer)
  1291. {
  1292.   BASE_EXT_DECL
  1293.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1294.   register struct Layer *a5 __asm("a5") = layer;
  1295.   __asm __volatile ("jsr a6@(-0x1b0)"
  1296.   : /* no output */
  1297.   : "r" (a6), "r" (a5)
  1298.   : "a0","a1","a5","d0","d1", "memory");
  1299. }
  1300. static __inline ULONG 
  1301. MakeVPort (BASE_PAR_DECL struct View *view,struct ViewPort *vp)
  1302. {
  1303.   BASE_EXT_DECL
  1304.   register ULONG  _res  __asm("d0");
  1305.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1306.   register struct View *a0 __asm("a0") = view;
  1307.   register struct ViewPort *a1 __asm("a1") = vp;
  1308.   __asm __volatile ("jsr a6@(-0xd8)"
  1309.   : "=r" (_res)
  1310.   : "r" (a6), "r" (a0), "r" (a1)
  1311.   : "a0","a1","d0","d1", "memory");
  1312.   return _res;
  1313. }
  1314. static __inline LONG 
  1315. ModeNotAvailable (BASE_PAR_DECL unsigned long modeID)
  1316. {
  1317.   BASE_EXT_DECL
  1318.   register LONG  _res  __asm("d0");
  1319.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1320.   register unsigned long d0 __asm("d0") = modeID;
  1321.   __asm __volatile ("jsr a6@(-0x31e)"
  1322.   : "=r" (_res)
  1323.   : "r" (a6), "r" (d0)
  1324.   : "a0","a1","d0","d1", "memory");
  1325.   return _res;
  1326. }
  1327. static __inline void 
  1328. Move (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  1329. {
  1330.   BASE_EXT_DECL
  1331.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1332.   register struct RastPort *a1 __asm("a1") = rp;
  1333.   register long d0 __asm("d0") = x;
  1334.   register long d1 __asm("d1") = y;
  1335.   __asm __volatile ("jsr a6@(-0xf0)"
  1336.   : /* no output */
  1337.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  1338.   : "a0","a1","d0","d1", "memory");
  1339. }
  1340. static __inline void 
  1341. MoveSprite (BASE_PAR_DECL struct ViewPort *vp,struct SimpleSprite *sprite,long x,long y)
  1342. {
  1343.   BASE_EXT_DECL
  1344.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1345.   register struct ViewPort *a0 __asm("a0") = vp;
  1346.   register struct SimpleSprite *a1 __asm("a1") = sprite;
  1347.   register long d0 __asm("d0") = x;
  1348.   register long d1 __asm("d1") = y;
  1349.   __asm __volatile ("jsr a6@(-0x1aa)"
  1350.   : /* no output */
  1351.   : "r" (a6), "r" (a0), "r" (a1), "r" (d0), "r" (d1)
  1352.   : "a0","a1","d0","d1", "memory");
  1353. }
  1354. static __inline ULONG 
  1355. MrgCop (BASE_PAR_DECL struct View *view)
  1356. {
  1357.   BASE_EXT_DECL
  1358.   register ULONG  _res  __asm("d0");
  1359.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1360.   register struct View *a1 __asm("a1") = view;
  1361.   __asm __volatile ("jsr a6@(-0xd2)"
  1362.   : "=r" (_res)
  1363.   : "r" (a6), "r" (a1)
  1364.   : "a0","a1","d0","d1", "memory");
  1365.   return _res;
  1366. }
  1367. static __inline struct Region *
  1368. NewRegion (BASE_PAR_DECL0)
  1369. {
  1370.   BASE_EXT_DECL
  1371.   register struct Region * _res  __asm("d0");
  1372.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1373.   __asm __volatile ("jsr a6@(-0x204)"
  1374.   : "=r" (_res)
  1375.   : "r" (a6)
  1376.   : "a0","a1","d0","d1", "memory");
  1377.   return _res;
  1378. }
  1379. static __inline ULONG 
  1380. NextDisplayInfo (BASE_PAR_DECL unsigned long displayID)
  1381. {
  1382.   BASE_EXT_DECL
  1383.   register ULONG  _res  __asm("d0");
  1384.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1385.   register unsigned long d0 __asm("d0") = displayID;
  1386.   __asm __volatile ("jsr a6@(-0x2dc)"
  1387.   : "=r" (_res)
  1388.   : "r" (a6), "r" (d0)
  1389.   : "a0","a1","d0","d1", "memory");
  1390.   return _res;
  1391. }
  1392. static __inline LONG 
  1393. ObtainBestPenA (BASE_PAR_DECL struct ColorMap *cm,unsigned long r,unsigned long g,unsigned long b,struct TagItem *tags)
  1394. {
  1395.   BASE_EXT_DECL
  1396.   register LONG  _res  __asm("d0");
  1397.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1398.   register struct ColorMap *a0 __asm("a0") = cm;
  1399.   register unsigned long d1 __asm("d1") = r;
  1400.   register unsigned long d2 __asm("d2") = g;
  1401.   register unsigned long d3 __asm("d3") = b;
  1402.   register struct TagItem *a1 __asm("a1") = tags;
  1403.   __asm __volatile ("jsr a6@(-0x348)"
  1404.   : "=r" (_res)
  1405.   : "r" (a6), "r" (a0), "r" (d1), "r" (d2), "r" (d3), "r" (a1)
  1406.   : "a0","a1","d0","d1","d2","d3", "memory");
  1407.   return _res;
  1408. }
  1409. static __inline ULONG 
  1410. ObtainPen (BASE_PAR_DECL struct ColorMap *cm,unsigned long n,unsigned long r,unsigned long g,unsigned long b,long f)
  1411. {
  1412.   BASE_EXT_DECL
  1413.   register ULONG  _res  __asm("d0");
  1414.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1415.   register struct ColorMap *a0 __asm("a0") = cm;
  1416.   register unsigned long d0 __asm("d0") = n;
  1417.   register unsigned long d1 __asm("d1") = r;
  1418.   register unsigned long d2 __asm("d2") = g;
  1419.   register unsigned long d3 __asm("d3") = b;
  1420.   register long d4 __asm("d4") = f;
  1421.   __asm __volatile ("jsr a6@(-0x3ba)"
  1422.   : "=r" (_res)
  1423.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  1424.   : "a0","a1","d0","d1","d2","d3","d4", "memory");
  1425.   return _res;
  1426. }
  1427. static __inline struct TextFont *
  1428. OpenFont (BASE_PAR_DECL struct TextAttr *textAttr)
  1429. {
  1430.   BASE_EXT_DECL
  1431.   register struct TextFont * _res  __asm("d0");
  1432.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1433.   register struct TextAttr *a0 __asm("a0") = textAttr;
  1434.   __asm __volatile ("jsr a6@(-0x48)"
  1435.   : "=r" (_res)
  1436.   : "r" (a6), "r" (a0)
  1437.   : "a0","a1","d0","d1", "memory");
  1438.   return _res;
  1439. }
  1440. static __inline struct MonitorSpec *
  1441. OpenMonitor (BASE_PAR_DECL STRPTR monitorName,unsigned long displayID)
  1442. {
  1443.   BASE_EXT_DECL
  1444.   register struct MonitorSpec * _res  __asm("d0");
  1445.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1446.   register STRPTR a1 __asm("a1") = monitorName;
  1447.   register unsigned long d0 __asm("d0") = displayID;
  1448.   __asm __volatile ("jsr a6@(-0x2ca)"
  1449.   : "=r" (_res)
  1450.   : "r" (a6), "r" (a1), "r" (d0)
  1451.   : "a0","a1","d0","d1", "memory");
  1452.   return _res;
  1453. }
  1454. static __inline BOOL 
  1455. OrRectRegion (BASE_PAR_DECL struct Region *region,struct Rectangle *rectangle)
  1456. {
  1457.   BASE_EXT_DECL
  1458.   register BOOL  _res  __asm("d0");
  1459.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1460.   register struct Region *a0 __asm("a0") = region;
  1461.   register struct Rectangle *a1 __asm("a1") = rectangle;
  1462.   __asm __volatile ("jsr a6@(-0x1fe)"
  1463.   : "=r" (_res)
  1464.   : "r" (a6), "r" (a0), "r" (a1)
  1465.   : "a0","a1","d0","d1", "memory");
  1466.   return _res;
  1467. }
  1468. static __inline BOOL 
  1469. OrRegionRegion (BASE_PAR_DECL struct Region *srcRegion,struct Region *destRegion)
  1470. {
  1471.   BASE_EXT_DECL
  1472.   register BOOL  _res  __asm("d0");
  1473.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1474.   register struct Region *a0 __asm("a0") = srcRegion;
  1475.   register struct Region *a1 __asm("a1") = destRegion;
  1476.   __asm __volatile ("jsr a6@(-0x264)"
  1477.   : "=r" (_res)
  1478.   : "r" (a6), "r" (a0), "r" (a1)
  1479.   : "a0","a1","d0","d1", "memory");
  1480.   return _res;
  1481. }
  1482. static __inline void 
  1483. OwnBlitter (BASE_PAR_DECL0)
  1484. {
  1485.   BASE_EXT_DECL
  1486.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1487.   __asm __volatile ("jsr a6@(-0x1c8)"
  1488.   : /* no output */
  1489.   : "r" (a6)
  1490.   : "a0","a1","d0","d1", "memory");
  1491. }
  1492. static __inline void 
  1493. PolyDraw (BASE_PAR_DECL struct RastPort *rp,long count,WORD *polyTable)
  1494. {
  1495.   BASE_EXT_DECL
  1496.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1497.   register struct RastPort *a1 __asm("a1") = rp;
  1498.   register long d0 __asm("d0") = count;
  1499.   register WORD *a0 __asm("a0") = polyTable;
  1500.   __asm __volatile ("jsr a6@(-0x150)"
  1501.   : /* no output */
  1502.   : "r" (a6), "r" (a1), "r" (d0), "r" (a0)
  1503.   : "a0","a1","d0","d1", "memory");
  1504. }
  1505. static __inline void 
  1506. QBSBlit (BASE_PAR_DECL struct bltnode *blit)
  1507. {
  1508.   BASE_EXT_DECL
  1509.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1510.   register struct bltnode *a1 __asm("a1") = blit;
  1511.   __asm __volatile ("jsr a6@(-0x126)"
  1512.   : /* no output */
  1513.   : "r" (a6), "r" (a1)
  1514.   : "a0","a1","d0","d1", "memory");
  1515. }
  1516. static __inline void 
  1517. QBlit (BASE_PAR_DECL struct bltnode *blit)
  1518. {
  1519.   BASE_EXT_DECL
  1520.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1521.   register struct bltnode *a1 __asm("a1") = blit;
  1522.   __asm __volatile ("jsr a6@(-0x114)"
  1523.   : /* no output */
  1524.   : "r" (a6), "r" (a1)
  1525.   : "a0","a1","d0","d1", "memory");
  1526. }
  1527. static __inline ULONG 
  1528. ReadPixel (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  1529. {
  1530.   BASE_EXT_DECL
  1531.   register ULONG  _res  __asm("d0");
  1532.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1533.   register struct RastPort *a1 __asm("a1") = rp;
  1534.   register long d0 __asm("d0") = x;
  1535.   register long d1 __asm("d1") = y;
  1536.   __asm __volatile ("jsr a6@(-0x13e)"
  1537.   : "=r" (_res)
  1538.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  1539.   : "a0","a1","d0","d1", "memory");
  1540.   return _res;
  1541. }
  1542. static __inline LONG 
  1543. ReadPixelArray8 (BASE_PAR_DECL struct RastPort *rp,unsigned long xstart,unsigned long ystart,unsigned long xstop,unsigned long ystop,UBYTE *array,struct RastPort *temprp)
  1544. {
  1545.   BASE_EXT_DECL
  1546.   register LONG  _res  __asm("d0");
  1547.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1548.   register struct RastPort *a0 __asm("a0") = rp;
  1549.   register unsigned long d0 __asm("d0") = xstart;
  1550.   register unsigned long d1 __asm("d1") = ystart;
  1551.   register unsigned long d2 __asm("d2") = xstop;
  1552.   register unsigned long d3 __asm("d3") = ystop;
  1553.   register UBYTE *a2 __asm("a2") = array;
  1554.   register struct RastPort *a1 __asm("a1") = temprp;
  1555.   __asm __volatile ("jsr a6@(-0x30c)"
  1556.   : "=r" (_res)
  1557.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (a2), "r" (a1)
  1558.   : "a0","a1","a2","d0","d1","d2","d3", "memory");
  1559.   return _res;
  1560. }
  1561. static __inline LONG 
  1562. ReadPixelLine8 (BASE_PAR_DECL struct RastPort *rp,unsigned long xstart,unsigned long ystart,unsigned long width,UBYTE *array,struct RastPort *tempRP)
  1563. {
  1564.   BASE_EXT_DECL
  1565.   register LONG  _res  __asm("d0");
  1566.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1567.   register struct RastPort *a0 __asm("a0") = rp;
  1568.   register unsigned long d0 __asm("d0") = xstart;
  1569.   register unsigned long d1 __asm("d1") = ystart;
  1570.   register unsigned long d2 __asm("d2") = width;
  1571.   register UBYTE *a2 __asm("a2") = array;
  1572.   register struct RastPort *a1 __asm("a1") = tempRP;
  1573.   __asm __volatile ("jsr a6@(-0x300)"
  1574.   : "=r" (_res)
  1575.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (a2), "r" (a1)
  1576.   : "a0","a1","a2","d0","d1","d2", "memory");
  1577.   return _res;
  1578. }
  1579. static __inline void 
  1580. RectFill (BASE_PAR_DECL struct RastPort *rp,long xMin,long yMin,long xMax,long yMax)
  1581. {
  1582.   BASE_EXT_DECL
  1583.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1584.   register struct RastPort *a1 __asm("a1") = rp;
  1585.   register long d0 __asm("d0") = xMin;
  1586.   register long d1 __asm("d1") = yMin;
  1587.   register long d2 __asm("d2") = xMax;
  1588.   register long d3 __asm("d3") = yMax;
  1589.   __asm __volatile ("jsr a6@(-0x132)"
  1590.   : /* no output */
  1591.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  1592.   : "a0","a1","d0","d1","d2","d3", "memory");
  1593. }
  1594. static __inline void 
  1595. ReleasePen (BASE_PAR_DECL struct ColorMap *cm,unsigned long n)
  1596. {
  1597.   BASE_EXT_DECL
  1598.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1599.   register struct ColorMap *a0 __asm("a0") = cm;
  1600.   register unsigned long d0 __asm("d0") = n;
  1601.   __asm __volatile ("jsr a6@(-0x3b4)"
  1602.   : /* no output */
  1603.   : "r" (a6), "r" (a0), "r" (d0)
  1604.   : "a0","a1","d0","d1", "memory");
  1605. }
  1606. static __inline void 
  1607. RemFont (BASE_PAR_DECL struct TextFont *textFont)
  1608. {
  1609.   BASE_EXT_DECL
  1610.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1611.   register struct TextFont *a1 __asm("a1") = textFont;
  1612.   __asm __volatile ("jsr a6@(-0x1e6)"
  1613.   : /* no output */
  1614.   : "r" (a6), "r" (a1)
  1615.   : "a0","a1","d0","d1", "memory");
  1616. }
  1617. static __inline void 
  1618. RemIBob (BASE_PAR_DECL struct Bob *bob,struct RastPort *rp,struct ViewPort *vp)
  1619. {
  1620.   BASE_EXT_DECL
  1621.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1622.   register struct Bob *a0 __asm("a0") = bob;
  1623.   register struct RastPort *a1 __asm("a1") = rp;
  1624.   register struct ViewPort *a2 __asm("a2") = vp;
  1625.   __asm __volatile ("jsr a6@(-0x84)"
  1626.   : /* no output */
  1627.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  1628.   : "a0","a1","a2","d0","d1", "memory");
  1629. }
  1630. static __inline void 
  1631. RemVSprite (BASE_PAR_DECL struct VSprite *vSprite)
  1632. {
  1633.   BASE_EXT_DECL
  1634.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1635.   register struct VSprite *a0 __asm("a0") = vSprite;
  1636.   __asm __volatile ("jsr a6@(-0x8a)"
  1637.   : /* no output */
  1638.   : "r" (a6), "r" (a0)
  1639.   : "a0","a1","d0","d1", "memory");
  1640. }
  1641. static __inline UWORD 
  1642. ScalerDiv (BASE_PAR_DECL unsigned long factor,unsigned long numerator,unsigned long denominator)
  1643. {
  1644.   BASE_EXT_DECL
  1645.   register UWORD  _res  __asm("d0");
  1646.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1647.   register unsigned long d0 __asm("d0") = factor;
  1648.   register unsigned long d1 __asm("d1") = numerator;
  1649.   register unsigned long d2 __asm("d2") = denominator;
  1650.   __asm __volatile ("jsr a6@(-0x2ac)"
  1651.   : "=r" (_res)
  1652.   : "r" (a6), "r" (d0), "r" (d1), "r" (d2)
  1653.   : "a0","a1","d0","d1","d2", "memory");
  1654.   return _res;
  1655. }
  1656. static __inline void 
  1657. ScrollRaster (BASE_PAR_DECL struct RastPort *rp,long dx,long dy,long xMin,long yMin,long xMax,long yMax)
  1658. {
  1659.   BASE_EXT_DECL
  1660.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1661.   register struct RastPort *a1 __asm("a1") = rp;
  1662.   register long d0 __asm("d0") = dx;
  1663.   register long d1 __asm("d1") = dy;
  1664.   register long d2 __asm("d2") = xMin;
  1665.   register long d3 __asm("d3") = yMin;
  1666.   register long d4 __asm("d4") = xMax;
  1667.   register long d5 __asm("d5") = yMax;
  1668.   __asm __volatile ("jsr a6@(-0x18c)"
  1669.   : /* no output */
  1670.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  1671.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  1672. }
  1673. static __inline void 
  1674. ScrollRasterBF (BASE_PAR_DECL struct RastPort *rp,long dx,long dy,long xMin,long yMin,long xMax,long yMax)
  1675. {
  1676.   BASE_EXT_DECL
  1677.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1678.   register struct RastPort *a1 __asm("a1") = rp;
  1679.   register long d0 __asm("d0") = dx;
  1680.   register long d1 __asm("d1") = dy;
  1681.   register long d2 __asm("d2") = xMin;
  1682.   register long d3 __asm("d3") = yMin;
  1683.   register long d4 __asm("d4") = xMax;
  1684.   register long d5 __asm("d5") = yMax;
  1685.   __asm __volatile ("jsr a6@(-0x3ea)"
  1686.   : /* no output */
  1687.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  1688.   : "a0","a1","d0","d1","d2","d3","d4","d5", "memory");
  1689. }
  1690. static __inline void 
  1691. ScrollVPort (BASE_PAR_DECL struct ViewPort *vp)
  1692. {
  1693.   BASE_EXT_DECL
  1694.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1695.   register struct ViewPort *a0 __asm("a0") = vp;
  1696.   __asm __volatile ("jsr a6@(-0x24c)"
  1697.   : /* no output */
  1698.   : "r" (a6), "r" (a0)
  1699.   : "a0","a1","d0","d1", "memory");
  1700. }
  1701. static __inline void 
  1702. SetABPenDrMd (BASE_PAR_DECL struct RastPort *rp,unsigned long apen,unsigned long bpen,unsigned long drawmode)
  1703. {
  1704.   BASE_EXT_DECL
  1705.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1706.   register struct RastPort *a1 __asm("a1") = rp;
  1707.   register unsigned long d0 __asm("d0") = apen;
  1708.   register unsigned long d1 __asm("d1") = bpen;
  1709.   register unsigned long d2 __asm("d2") = drawmode;
  1710.   __asm __volatile ("jsr a6@(-0x37e)"
  1711.   : /* no output */
  1712.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2)
  1713.   : "a0","a1","d0","d1","d2", "memory");
  1714. }
  1715. static __inline void 
  1716. SetAPen (BASE_PAR_DECL struct RastPort *rp,unsigned long pen)
  1717. {
  1718.   BASE_EXT_DECL
  1719.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1720.   register struct RastPort *a1 __asm("a1") = rp;
  1721.   register unsigned long d0 __asm("d0") = pen;
  1722.   __asm __volatile ("jsr a6@(-0x156)"
  1723.   : /* no output */
  1724.   : "r" (a6), "r" (a1), "r" (d0)
  1725.   : "a0","a1","d0","d1", "memory");
  1726. }
  1727. static __inline void 
  1728. SetBPen (BASE_PAR_DECL struct RastPort *rp,unsigned long pen)
  1729. {
  1730.   BASE_EXT_DECL
  1731.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1732.   register struct RastPort *a1 __asm("a1") = rp;
  1733.   register unsigned long d0 __asm("d0") = pen;
  1734.   __asm __volatile ("jsr a6@(-0x15c)"
  1735.   : /* no output */
  1736.   : "r" (a6), "r" (a1), "r" (d0)
  1737.   : "a0","a1","d0","d1", "memory");
  1738. }
  1739. static __inline ULONG 
  1740. SetChipRev (BASE_PAR_DECL unsigned long want)
  1741. {
  1742.   BASE_EXT_DECL
  1743.   register ULONG  _res  __asm("d0");
  1744.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1745.   register unsigned long d0 __asm("d0") = want;
  1746.   __asm __volatile ("jsr a6@(-0x378)"
  1747.   : "=r" (_res)
  1748.   : "r" (a6), "r" (d0)
  1749.   : "a0","a1","d0","d1", "memory");
  1750.   return _res;
  1751. }
  1752. static __inline void 
  1753. SetCollision (BASE_PAR_DECL unsigned long num,void (*routine)(struct VSprite *vSprite, APTR),struct GelsInfo *gelsInfo)
  1754. {
  1755.   BASE_EXT_DECL
  1756.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1757.   register unsigned long d0 __asm("d0") = num;
  1758.   register void (*a0)() __asm("a0") = routine;
  1759.   register struct GelsInfo *a1 __asm("a1") = gelsInfo;
  1760.   __asm __volatile ("jsr a6@(-0x90)"
  1761.   : /* no output */
  1762.   : "r" (a6), "r" (d0), "r" (a0), "r" (a1)
  1763.   : "a0","a1","d0","d1", "memory");
  1764. }
  1765. static __inline void 
  1766. SetDrMd (BASE_PAR_DECL struct RastPort *rp,unsigned long drawMode)
  1767. {
  1768.   BASE_EXT_DECL
  1769.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1770.   register struct RastPort *a1 __asm("a1") = rp;
  1771.   register unsigned long d0 __asm("d0") = drawMode;
  1772.   __asm __volatile ("jsr a6@(-0x162)"
  1773.   : /* no output */
  1774.   : "r" (a6), "r" (a1), "r" (d0)
  1775.   : "a0","a1","d0","d1", "memory");
  1776. }
  1777. static __inline LONG 
  1778. SetFont (BASE_PAR_DECL struct RastPort *rp,struct TextFont *textFont)
  1779. {
  1780.   BASE_EXT_DECL
  1781.   register LONG  _res  __asm("d0");
  1782.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1783.   register struct RastPort *a1 __asm("a1") = rp;
  1784.   register struct TextFont *a0 __asm("a0") = textFont;
  1785.   __asm __volatile ("jsr a6@(-0x42)"
  1786.   : "=r" (_res)
  1787.   : "r" (a6), "r" (a1), "r" (a0)
  1788.   : "a0","a1","d0","d1", "memory");
  1789.   return _res;
  1790. }
  1791. static __inline void 
  1792. SetMaxPen (BASE_PAR_DECL struct RastPort *rp,unsigned long maxpen)
  1793. {
  1794.   BASE_EXT_DECL
  1795.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1796.   register struct RastPort *a0 __asm("a0") = rp;
  1797.   register unsigned long d0 __asm("d0") = maxpen;
  1798.   __asm __volatile ("jsr a6@(-0x3de)"
  1799.   : /* no output */
  1800.   : "r" (a6), "r" (a0), "r" (d0)
  1801.   : "a0","a1","d0","d1", "memory");
  1802. }
  1803. static __inline ULONG 
  1804. SetOutlinePen (BASE_PAR_DECL struct RastPort *rp,unsigned long pen)
  1805. {
  1806.   BASE_EXT_DECL
  1807.   register ULONG  _res  __asm("d0");
  1808.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1809.   register struct RastPort *a0 __asm("a0") = rp;
  1810.   register unsigned long d0 __asm("d0") = pen;
  1811.   __asm __volatile ("jsr a6@(-0x3d2)"
  1812.   : "=r" (_res)
  1813.   : "r" (a6), "r" (a0), "r" (d0)
  1814.   : "a0","a1","d0","d1", "memory");
  1815.   return _res;
  1816. }
  1817. static __inline void 
  1818. SetRGB32 (BASE_PAR_DECL struct ViewPort *vp,unsigned long n,unsigned long r,unsigned long g,unsigned long b)
  1819. {
  1820.   BASE_EXT_DECL
  1821.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1822.   register struct ViewPort *a0 __asm("a0") = vp;
  1823.   register unsigned long d0 __asm("d0") = n;
  1824.   register unsigned long d1 __asm("d1") = r;
  1825.   register unsigned long d2 __asm("d2") = g;
  1826.   register unsigned long d3 __asm("d3") = b;
  1827.   __asm __volatile ("jsr a6@(-0x354)"
  1828.   : /* no output */
  1829.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  1830.   : "a0","a1","d0","d1","d2","d3", "memory");
  1831. }
  1832. static __inline void 
  1833. SetRGB32CM (BASE_PAR_DECL struct ColorMap *cm,unsigned long n,unsigned long r,unsigned long g,unsigned long b)
  1834. {
  1835.   BASE_EXT_DECL
  1836.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1837.   register struct ColorMap *a0 __asm("a0") = cm;
  1838.   register unsigned long d0 __asm("d0") = n;
  1839.   register unsigned long d1 __asm("d1") = r;
  1840.   register unsigned long d2 __asm("d2") = g;
  1841.   register unsigned long d3 __asm("d3") = b;
  1842.   __asm __volatile ("jsr a6@(-0x3e4)"
  1843.   : /* no output */
  1844.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  1845.   : "a0","a1","d0","d1","d2","d3", "memory");
  1846. }
  1847. static __inline void 
  1848. SetRGB4 (BASE_PAR_DECL struct ViewPort *vp,long index,unsigned long red,unsigned long green,unsigned long blue)
  1849. {
  1850.   BASE_EXT_DECL
  1851.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1852.   register struct ViewPort *a0 __asm("a0") = vp;
  1853.   register long d0 __asm("d0") = index;
  1854.   register unsigned long d1 __asm("d1") = red;
  1855.   register unsigned long d2 __asm("d2") = green;
  1856.   register unsigned long d3 __asm("d3") = blue;
  1857.   __asm __volatile ("jsr a6@(-0x120)"
  1858.   : /* no output */
  1859.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  1860.   : "a0","a1","d0","d1","d2","d3", "memory");
  1861. }
  1862. static __inline void 
  1863. SetRGB4CM (BASE_PAR_DECL struct ColorMap *colorMap,long index,unsigned long red,unsigned long green,unsigned long blue)
  1864. {
  1865.   BASE_EXT_DECL
  1866.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1867.   register struct ColorMap *a0 __asm("a0") = colorMap;
  1868.   register long d0 __asm("d0") = index;
  1869.   register unsigned long d1 __asm("d1") = red;
  1870.   register unsigned long d2 __asm("d2") = green;
  1871.   register unsigned long d3 __asm("d3") = blue;
  1872.   __asm __volatile ("jsr a6@(-0x276)"
  1873.   : /* no output */
  1874.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  1875.   : "a0","a1","d0","d1","d2","d3", "memory");
  1876. }
  1877. static __inline void 
  1878. SetRPAttrsA (BASE_PAR_DECL struct RastPort *rp,struct TagItem *tags)
  1879. {
  1880.   BASE_EXT_DECL
  1881.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1882.   register struct RastPort *a0 __asm("a0") = rp;
  1883.   register struct TagItem *a1 __asm("a1") = tags;
  1884.   __asm __volatile ("jsr a6@(-0x40e)"
  1885.   : /* no output */
  1886.   : "r" (a6), "r" (a0), "r" (a1)
  1887.   : "a0","a1","d0","d1", "memory");
  1888. }
  1889. static __inline void 
  1890. SetRast (BASE_PAR_DECL struct RastPort *rp,unsigned long pen)
  1891. {
  1892.   BASE_EXT_DECL
  1893.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1894.   register struct RastPort *a1 __asm("a1") = rp;
  1895.   register unsigned long d0 __asm("d0") = pen;
  1896.   __asm __volatile ("jsr a6@(-0xea)"
  1897.   : /* no output */
  1898.   : "r" (a6), "r" (a1), "r" (d0)
  1899.   : "a0","a1","d0","d1", "memory");
  1900. }
  1901. static __inline ULONG 
  1902. SetSoftStyle (BASE_PAR_DECL struct RastPort *rp,unsigned long style,unsigned long enable)
  1903. {
  1904.   BASE_EXT_DECL
  1905.   register ULONG  _res  __asm("d0");
  1906.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1907.   register struct RastPort *a1 __asm("a1") = rp;
  1908.   register unsigned long d0 __asm("d0") = style;
  1909.   register unsigned long d1 __asm("d1") = enable;
  1910.   __asm __volatile ("jsr a6@(-0x5a)"
  1911.   : "=r" (_res)
  1912.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  1913.   : "a0","a1","d0","d1", "memory");
  1914.   return _res;
  1915. }
  1916. static __inline ULONG 
  1917. SetWriteMask (BASE_PAR_DECL struct RastPort *rp,unsigned long msk)
  1918. {
  1919.   BASE_EXT_DECL
  1920.   register ULONG  _res  __asm("d0");
  1921.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1922.   register struct RastPort *a0 __asm("a0") = rp;
  1923.   register unsigned long d0 __asm("d0") = msk;
  1924.   __asm __volatile ("jsr a6@(-0x3d8)"
  1925.   : "=r" (_res)
  1926.   : "r" (a6), "r" (a0), "r" (d0)
  1927.   : "a0","a1","d0","d1", "memory");
  1928.   return _res;
  1929. }
  1930. static __inline void 
  1931. SortGList (BASE_PAR_DECL struct RastPort *rp)
  1932. {
  1933.   BASE_EXT_DECL
  1934.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1935.   register struct RastPort *a1 __asm("a1") = rp;
  1936.   __asm __volatile ("jsr a6@(-0x96)"
  1937.   : /* no output */
  1938.   : "r" (a6), "r" (a1)
  1939.   : "a0","a1","d0","d1", "memory");
  1940. }
  1941. static __inline void 
  1942. StripFont (BASE_PAR_DECL struct TextFont *font)
  1943. {
  1944.   BASE_EXT_DECL
  1945.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1946.   register struct TextFont *a0 __asm("a0") = font;
  1947.   __asm __volatile ("jsr a6@(-0x336)"
  1948.   : /* no output */
  1949.   : "r" (a6), "r" (a0)
  1950.   : "a0","a1","d0","d1", "memory");
  1951. }
  1952. static __inline void 
  1953. SyncSBitMap (BASE_PAR_DECL struct Layer *layer)
  1954. {
  1955.   BASE_EXT_DECL
  1956.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1957.   register struct Layer *a0 __asm("a0") = layer;
  1958.   __asm __volatile ("jsr a6@(-0x1bc)"
  1959.   : /* no output */
  1960.   : "r" (a6), "r" (a0)
  1961.   : "a0","a1","d0","d1", "memory");
  1962. }
  1963. static __inline LONG 
  1964. Text (BASE_PAR_DECL struct RastPort *rp,STRPTR string,unsigned long count)
  1965. {
  1966.   BASE_EXT_DECL
  1967.   register LONG  _res  __asm("d0");
  1968.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1969.   register struct RastPort *a1 __asm("a1") = rp;
  1970.   register STRPTR a0 __asm("a0") = string;
  1971.   register unsigned long d0 __asm("d0") = count;
  1972.   __asm __volatile ("jsr a6@(-0x3c)"
  1973.   : "=r" (_res)
  1974.   : "r" (a6), "r" (a1), "r" (a0), "r" (d0)
  1975.   : "a0","a1","d0","d1", "memory");
  1976.   return _res;
  1977. }
  1978. static __inline WORD 
  1979. TextExtent (BASE_PAR_DECL struct RastPort *rp,STRPTR string,long count,struct TextExtent *textExtent)
  1980. {
  1981.   BASE_EXT_DECL
  1982.   register WORD  _res  __asm("d0");
  1983.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  1984.   register struct RastPort *a1 __asm("a1") = rp;
  1985.   register STRPTR a0 __asm("a0") = string;
  1986.   register long d0 __asm("d0") = count;
  1987.   register struct TextExtent *a2 __asm("a2") = textExtent;
  1988.   __asm __volatile ("jsr a6@(-0x2b2)"
  1989.   : "=r" (_res)
  1990.   : "r" (a6), "r" (a1), "r" (a0), "r" (d0), "r" (a2)
  1991.   : "a0","a1","a2","d0","d1", "memory");
  1992.   return _res;
  1993. }
  1994. static __inline ULONG 
  1995. TextFit (BASE_PAR_DECL struct RastPort *rp,STRPTR string,unsigned long strLen,struct TextExtent *textExtent,struct TextExtent *constrainingExtent,long strDirection,unsigned long constrainingBitWidth,unsigned long constrainingBitHeight)
  1996. {
  1997.   BASE_EXT_DECL
  1998.   register ULONG  _res  __asm("d0");
  1999.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2000.   register struct RastPort *a1 __asm("a1") = rp;
  2001.   register STRPTR a0 __asm("a0") = string;
  2002.   register unsigned long d0 __asm("d0") = strLen;
  2003.   register struct TextExtent *a2 __asm("a2") = textExtent;
  2004.   register struct TextExtent *a3 __asm("a3") = constrainingExtent;
  2005.   register long d1 __asm("d1") = strDirection;
  2006.   register unsigned long d2 __asm("d2") = constrainingBitWidth;
  2007.   register unsigned long d3 __asm("d3") = constrainingBitHeight;
  2008.   __asm __volatile ("jsr a6@(-0x2b8)"
  2009.   : "=r" (_res)
  2010.   : "r" (a6), "r" (a1), "r" (a0), "r" (d0), "r" (a2), "r" (a3), "r" (d1), "r" (d2), "r" (d3)
  2011.   : "a0","a1","a2","a3","d0","d1","d2","d3", "memory");
  2012.   return _res;
  2013. }
  2014. static __inline WORD 
  2015. TextLength (BASE_PAR_DECL struct RastPort *rp,STRPTR string,unsigned long count)
  2016. {
  2017.   BASE_EXT_DECL
  2018.   register WORD  _res  __asm("d0");
  2019.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2020.   register struct RastPort *a1 __asm("a1") = rp;
  2021.   register STRPTR a0 __asm("a0") = string;
  2022.   register unsigned long d0 __asm("d0") = count;
  2023.   __asm __volatile ("jsr a6@(-0x36)"
  2024.   : "=r" (_res)
  2025.   : "r" (a6), "r" (a1), "r" (a0), "r" (d0)
  2026.   : "a0","a1","d0","d1", "memory");
  2027.   return _res;
  2028. }
  2029. static __inline struct CopList *
  2030. UCopperListInit (BASE_PAR_DECL struct UCopList *uCopList,long n)
  2031. {
  2032.   BASE_EXT_DECL
  2033.   register struct CopList * _res  __asm("d0");
  2034.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2035.   register struct UCopList *a0 __asm("a0") = uCopList;
  2036.   register long d0 __asm("d0") = n;
  2037.   __asm __volatile ("jsr a6@(-0x252)"
  2038.   : "=r" (_res)
  2039.   : "r" (a6), "r" (a0), "r" (d0)
  2040.   : "a0","a1","d0","d1", "memory");
  2041.   return _res;
  2042. }
  2043. static __inline void 
  2044. UnlockLayerRom (BASE_PAR_DECL struct Layer *layer)
  2045. {
  2046.   BASE_EXT_DECL
  2047.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2048.   register struct Layer *a5 __asm("a5") = layer;
  2049.   __asm __volatile ("jsr a6@(-0x1b6)"
  2050.   : /* no output */
  2051.   : "r" (a6), "r" (a5)
  2052.   : "a0","a1","a5","d0","d1", "memory");
  2053. }
  2054. static __inline LONG 
  2055. VBeamPos (BASE_PAR_DECL0)
  2056. {
  2057.   BASE_EXT_DECL
  2058.   register LONG  _res  __asm("d0");
  2059.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2060.   __asm __volatile ("jsr a6@(-0x180)"
  2061.   : "=r" (_res)
  2062.   : "r" (a6)
  2063.   : "a0","a1","d0","d1", "memory");
  2064.   return _res;
  2065. }
  2066. static __inline BOOL 
  2067. VideoControl (BASE_PAR_DECL struct ColorMap *colorMap,struct TagItem *tagarray)
  2068. {
  2069.   BASE_EXT_DECL
  2070.   register BOOL  _res  __asm("d0");
  2071.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2072.   register struct ColorMap *a0 __asm("a0") = colorMap;
  2073.   register struct TagItem *a1 __asm("a1") = tagarray;
  2074.   __asm __volatile ("jsr a6@(-0x2c4)"
  2075.   : "=r" (_res)
  2076.   : "r" (a6), "r" (a0), "r" (a1)
  2077.   : "a0","a1","d0","d1", "memory");
  2078.   return _res;
  2079. }
  2080. #ifndef NO_INLINE_STDARG
  2081. #define VideoControlTags(a0, tags...) \
  2082.   ({ struct TagItem _tags[] = { tags }; VideoControl ((a0), _tags); })
  2083. #endif /* not NO_INLINE_STDARG */
  2084. static __inline void 
  2085. WaitBOVP (BASE_PAR_DECL struct ViewPort *vp)
  2086. {
  2087.   BASE_EXT_DECL
  2088.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2089.   register struct ViewPort *a0 __asm("a0") = vp;
  2090.   __asm __volatile ("jsr a6@(-0x192)"
  2091.   : /* no output */
  2092.   : "r" (a6), "r" (a0)
  2093.   : "a0","a1","d0","d1", "memory");
  2094. }
  2095. static __inline void 
  2096. WaitBlit (BASE_PAR_DECL0)
  2097. {
  2098.   BASE_EXT_DECL
  2099.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2100.   __asm __volatile ("jsr a6@(-0xe4)"
  2101.   : /* no output */
  2102.   : "r" (a6)
  2103.   : "a0","a1","d0","d1", "memory");
  2104. }
  2105. static __inline void 
  2106. WaitTOF (BASE_PAR_DECL0)
  2107. {
  2108.   BASE_EXT_DECL
  2109.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2110.   __asm __volatile ("jsr a6@(-0x10e)"
  2111.   : /* no output */
  2112.   : "r" (a6)
  2113.   : "a0","a1","d0","d1", "memory");
  2114. }
  2115. static __inline WORD 
  2116. WeighTAMatch (BASE_PAR_DECL struct TextAttr *reqTextAttr,struct TextAttr *targetTextAttr,struct TagItem *targetTags)
  2117. {
  2118.   BASE_EXT_DECL
  2119.   register WORD  _res  __asm("d0");
  2120.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2121.   register struct TextAttr *a0 __asm("a0") = reqTextAttr;
  2122.   register struct TextAttr *a1 __asm("a1") = targetTextAttr;
  2123.   register struct TagItem *a2 __asm("a2") = targetTags;
  2124.   __asm __volatile ("jsr a6@(-0x324)"
  2125.   : "=r" (_res)
  2126.   : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  2127.   : "a0","a1","a2","d0","d1", "memory");
  2128.   return _res;
  2129. }
  2130. #ifndef NO_INLINE_STDARG
  2131. #define WeighTAMatchTags(a0, a1, tags...) \
  2132.   ({ struct TagItem _tags[] = { tags }; WeighTAMatch ((a0), (a1), _tags); })
  2133. #endif /* not NO_INLINE_STDARG */
  2134. static __inline void 
  2135. WriteChunkyPixels (BASE_PAR_DECL struct RastPort *rp,unsigned long xstart,unsigned long ystart,unsigned long xstop,unsigned long ystop,UBYTE *array,long bytesperrow)
  2136. {
  2137.   BASE_EXT_DECL
  2138.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2139.   register struct RastPort *a0 __asm("a0") = rp;
  2140.   register unsigned long d0 __asm("d0") = xstart;
  2141.   register unsigned long d1 __asm("d1") = ystart;
  2142.   register unsigned long d2 __asm("d2") = xstop;
  2143.   register unsigned long d3 __asm("d3") = ystop;
  2144.   register UBYTE *a2 __asm("a2") = array;
  2145.   register long d4 __asm("d4") = bytesperrow;
  2146.   __asm __volatile ("jsr a6@(-0x420)"
  2147.   : /* no output */
  2148.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (a2), "r" (d4)
  2149.   : "a0","a1","a2","d0","d1","d2","d3","d4", "memory");
  2150. }
  2151. static __inline LONG 
  2152. WritePixel (BASE_PAR_DECL struct RastPort *rp,long x,long y)
  2153. {
  2154.   BASE_EXT_DECL
  2155.   register LONG  _res  __asm("d0");
  2156.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2157.   register struct RastPort *a1 __asm("a1") = rp;
  2158.   register long d0 __asm("d0") = x;
  2159.   register long d1 __asm("d1") = y;
  2160.   __asm __volatile ("jsr a6@(-0x144)"
  2161.   : "=r" (_res)
  2162.   : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  2163.   : "a0","a1","d0","d1", "memory");
  2164.   return _res;
  2165. }
  2166. static __inline LONG 
  2167. WritePixelArray8 (BASE_PAR_DECL struct RastPort *rp,unsigned long xstart,unsigned long ystart,unsigned long xstop,unsigned long ystop,UBYTE *array,struct RastPort *temprp)
  2168. {
  2169.   BASE_EXT_DECL
  2170.   register LONG  _res  __asm("d0");
  2171.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2172.   register struct RastPort *a0 __asm("a0") = rp;
  2173.   register unsigned long d0 __asm("d0") = xstart;
  2174.   register unsigned long d1 __asm("d1") = ystart;
  2175.   register unsigned long d2 __asm("d2") = xstop;
  2176.   register unsigned long d3 __asm("d3") = ystop;
  2177.   register UBYTE *a2 __asm("a2") = array;
  2178.   register struct RastPort *a1 __asm("a1") = temprp;
  2179.   __asm __volatile ("jsr a6@(-0x312)"
  2180.   : "=r" (_res)
  2181.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (a2), "r" (a1)
  2182.   : "a0","a1","a2","d0","d1","d2","d3", "memory");
  2183.   return _res;
  2184. }
  2185. static __inline LONG 
  2186. WritePixelLine8 (BASE_PAR_DECL struct RastPort *rp,unsigned long xstart,unsigned long ystart,unsigned long width,UBYTE *array,struct RastPort *tempRP)
  2187. {
  2188.   BASE_EXT_DECL
  2189.   register LONG  _res  __asm("d0");
  2190.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2191.   register struct RastPort *a0 __asm("a0") = rp;
  2192.   register unsigned long d0 __asm("d0") = xstart;
  2193.   register unsigned long d1 __asm("d1") = ystart;
  2194.   register unsigned long d2 __asm("d2") = width;
  2195.   register UBYTE *a2 __asm("a2") = array;
  2196.   register struct RastPort *a1 __asm("a1") = tempRP;
  2197.   __asm __volatile ("jsr a6@(-0x306)"
  2198.   : "=r" (_res)
  2199.   : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (a2), "r" (a1)
  2200.   : "a0","a1","a2","d0","d1","d2", "memory");
  2201.   return _res;
  2202. }
  2203. static __inline BOOL 
  2204. XorRectRegion (BASE_PAR_DECL struct Region *region,struct Rectangle *rectangle)
  2205. {
  2206.   BASE_EXT_DECL
  2207.   register BOOL  _res  __asm("d0");
  2208.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2209.   register struct Region *a0 __asm("a0") = region;
  2210.   register struct Rectangle *a1 __asm("a1") = rectangle;
  2211.   __asm __volatile ("jsr a6@(-0x22e)"
  2212.   : "=r" (_res)
  2213.   : "r" (a6), "r" (a0), "r" (a1)
  2214.   : "a0","a1","d0","d1", "memory");
  2215.   return _res;
  2216. }
  2217. static __inline BOOL 
  2218. XorRegionRegion (BASE_PAR_DECL struct Region *srcRegion,struct Region *destRegion)
  2219. {
  2220.   BASE_EXT_DECL
  2221.   register BOOL  _res  __asm("d0");
  2222.   register struct GfxBase* a6 __asm("a6") = BASE_NAME;
  2223.   register struct Region *a0 __asm("a0") = srcRegion;
  2224.   register struct Region *a1 __asm("a1") = destRegion;
  2225.   __asm __volatile ("jsr a6@(-0x26a)"
  2226.   : "=r" (_res)
  2227.   : "r" (a6), "r" (a0), "r" (a1)
  2228.   : "a0","a1","d0","d1", "memory");
  2229.   return _res;
  2230. }
  2231.  
  2232. #undef BASE_EXT_DECL
  2233. #undef BASE_EXT_DECL0
  2234. #undef BASE_PAR_DECL
  2235. #undef BASE_PAR_DECL0
  2236. #undef BASE_NAME
  2237.  
  2238. __END_DECLS
  2239.  
  2240. #endif /* _INLINE_GRAPHICS_H */
  2241.